ATMEGA32 avr-g++ kann keine Ausgänge setzen
Hi Leute
Ich hab ein Problem:
Wenn i versuche zwei Ausgänge nacheinander zu setzen, wird immer nur der erste gesetzt. Beim zweiten Versuch kann ich dann keine Ausgänge mehr auf high (oder low bei active-low) setzen.
Hier mein Code:
Code:
#include <avr/io.h>
#include <stdio.h>
#include <util/delay.h>
int main()
{
DDRC |= 0xFF;
PINC |= (1<<0); //Wird gesetzt
waitms(1000);
PINC |= (1<<1); //Wird nicht mehr gesetzt
waitms(1000);
PINC |= (1<<0); //wird auch nicht gesetzt
waitms(1000);
PINC |= (1<<1); //und das auch nicht
}
Ich hoffe ihr könnt mir Helfen!
Brauch das für ein Miniprojekt in der Schule :(
MFG
Re: ATMEGA32 avr-g++ kann keine Ausgänge setzen
Zitat:
Zitat von TDK
... Wenn i versuche zwei Ausgänge nacheinander zu setzen, wird immer nur der erste gesetzt ...
PINC ist für die Statusabfrage des Portpins. Wenn Du einen bestimmten Pin setzen willst, musst Du PORTC schreiben. Übrigens werden bei Dir die LEDs nacheinander, eine nach der anderen gesetzt - das ist Dir schon klar ! ? Zum Schluss sind alle an.
Die Befehle können so lauten:
Code:
// PORTC |= (1<<PC4); // Port PC4 PC4 einschalten
// PORTC &= ~(1<<PC4); // Port PC4 ausschalten
// PORTC ^= (1<<PC4); // Port PC4 toggeln