Hallo,
ich bin dabei, ein älteres Programm zu überarbeiten und stoße auf ein
merkwürdiges Verhalten:
1 | int main(void)
|
2 | {
|
3 | DDRA = 0xFF;
|
4 | while (1)
|
5 | {
|
6 | PORTA |= (1<<PA0) | (1<<PA1) | (1<<PA2);
|
7 | _delay_ms(1000);
|
8 | PORTA &= ~(1<<PA0) | ~(1<<PA1) | ~(1<<PA2);
|
9 | // PORTA = 248;
|
10 | _delay_ms(1000);
|
11 | };
|
12 | }
|
Ich hatte gemeint, so etwas wie PORTA &= ~(1<<PA0) sei die aktuell
gültige Schreibweise für das Ausschalten eines Ports.
Es schaltet aber nicht aus, nur der Ausdruck PORTA = 248 hilft!
Was übersehe ich bei meinen Anweisungen?
Gibt es eigentlich ein aktuelles Manual über C für AVR's? Meine letzte
Version ist die von Schifferle. Leider finde ich hier unter den Artikeln
und Codesammlungen kaum etwas über die Grundlagen von C und in den
Buchhandlungen hatte ich nichts über avr-gcc (ich verwende WinAVR)
gefunden.
Vielen Dank schon mal
Alexander