Hallo,
ich versuche gerade meinen mega32 davon zu überzeugen einen Eingang abzufragen, komme dabei aber nicht weiter.

Ich habe Pin A0 als eingang definiert und mit einem Taster versehen welcher auf + landet. Weiter habe ich pin C0 als Ausgang definiert und an - angebunden dazwischen eine LED. Nun habe ich volgendes Programm geschrieben.

Ziel PC0 mit demTaster wieder aus zu schalten.

#include <avr/io.h>
#include <stdint.h>

int main(void)
{
DDRA &= ~( 1 << PA0 ); /* PIN auf Eingang (Taster) */
PORTA |= ( 1 << PA0 ); /* Pullup-Widerstand aktivieren */
DDRC = (1 << DDC0); // pin c0 als ausgang
PORTC |= (1<<PC0); // CPort C0 auf high
if ( !(PINA & (1<<PINA0)) ) // Port A0 = 0 dann mache was
{
PORTC &= ~(1<<PC0); // Port C0 auf low
}
}

PCO geht auf high aber lässt sich nicht mehr über A0 ausschalten. Spannung bei A0 (Taster nicht gedrückt > 0,7*Vcc also =1, Taster gedrückt <0,2*vcc also = 0).