hi, hatte heute früh schon mal eine blinkLED gemacht mit der delayfunktion, aber das soll ja nicht so effiezient sein. jetzt versuch ich das mit dem 16 bit timer beim Atmel at90can128 zum anfang so wie ich das verstehe ergibt sich doch die blinkfrequenz aus meinen 16Mhz / 1024 vorteiler und nochmal durch den OCR3B (bei mir) den ich einfach mal auf 60000 gestellt habe, daraus folgt 0,26 hz . an dem Ausgang von OC3 hab ich einfach mal ne LED gelegt und die blinkt aber alles andere als 0,26 hz. code: TCCR3A = (1<<WGM31) | (0<<WGM30) | (1<<COM3B0) | (1<<COM3B1); TCCR3B = (1<<CS32) | (0<<CS31) | (1<<CS30) |(0<<WGM33) | (0<<WGM32) ; while (1) { OCR3B = 60000; }
mazell schrieb: > (1<<WGM31) Damit hast du einen PWM-Mode eingestellt. Lass' den auf 0. >| (1<<COM3B0) | (1<<COM3B1); falsch, das schaltet den Pin auf High. Zum toggeln muß COM3B1 null sein. mazell schrieb: > |(0<<WGM33) | (0<<WGM32) Eine "0" kann man nicht schieben, Ist ja Geschmackssache. Aber ich finde das eher verwirrend als hilfreich. mazell schrieb: > OCR3B = 60000; Das gehört nicht in die while-Schleife, sondern in die Initialisierung. mfg.
jap hab ich jetzt auch gesehen ;) und noch ein fehler war drin nämlich nicht OCR3B sondern OCR3A muss es heißen ;)
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.