Gast
#455666
Hallo!
Ich habe bereits einen Post aus dem Jahr 2005 zu diesem Thema gefunden,
leider war aber keine Antwort auf das Problem zu finden.
Ich habe folgendes Problem: Wenn ich beim ATmega128 versuche, den Pin3
des Ports E (PE3/OC3A/AIN1) als Ausgang zu nutzen und ihn auf HIGH zu
setzen, bleibt dieser LOW. Hier der Code:
int main(void)
{
//ACSR |= (1<<ACD);
//SFIOR|= (1<<ACME);
//ADCSRA &= ~ (1<<ADEN);
//ADMUX &= ~ ((1<<MUX2)|(1<<MUX1)|(1<<MUX0));
DDRE |= (1<<DDE3)|(1<<DDE4)|(1<<DDE5);
PORTE = 0xFF;
while (1)
{ PORTE = 0xFF;
}
}
Es funktioniert z.B. auf PE4 und PE5, PE3 bleibt aber LOW. Ich habe auch
schon versucht, den negativen Eingang des Analogkomparators (AIN1) zu
disablen (siehe auskommentierte Zeilen), aber das hat auch nichts
genutzt.
Eigentlich wollte ich den 16bit-Timer 3 zur PWM nutzen. Auf PE4/OC3B und
PE5/OC3C funktioniert die PWM auch wunderbar, nur bei PE3 habe ich das
gleiche Problem wie schon beim simplen Output eines konstanten Wertes.
Ich verwende AVRStudio mit WinAVR und den Olimex JTAG ICE. Der
ATmega103-Kompatibilitätsmodus ist in den Fuse-Settings deaktiviert.
Hat irgendwer eine Idee, was der Grund für das Problem sein könnte?
Hat irgendwer schon mal erfolgreich die "output compare A" Funktion des
Timers 3 genutzt?
Grüße
Manfred