Hallo, ich bin ein bisschen stutzig, weil mein Analog Komparator scheinbar nicht läuft. Natürlich habe ich mir die anderen Codebeispiele angesehen und entdecke jetzt keinen Fehler im Code. Dieser folgendermaßen aus: int main(){ DDRA = 0xFF; DDRB = 0b11110011; DDRC = 0xFF; DDRD = 0xFF; PORTD = 0; ACSR = (0<<ACD)|(1<<ACBG); while(1){ if(ACSR & (1<<ACO)) PORTD = 1; else PORTD = 0; } return 0; } Die LED ist jedoch die ganze Zeit aus. Ich benutze ein einfaches Kabel zum testen und lege AIN1 mal auf Masse, mal auf +5V. Bei Masse müsste doch eigentlich AC0 gesetzt sein, da 0V < 1,3V ist. mfg Nils
Nein, die LED liegt an PORTD 0, so wie es im Datenblatt steht. Ich hab auch schon einen zweiten Atmega probiert, geht ebenfalls nicht.
Um das nochmal auf einen anderen Code zu übersetzen: loop_until_bit_is_set(ACSR,ACO); Diese Stelle wird nie verlassen. AIN0 und AIN1 sind Eingänge, auf AIN0 liegt über n Spannungsteiler ne Spannung an und an AIN0 die zu überprüfende Spannung. Das ACP Register is komplett 0.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.