Hallo @ all. Habe mir ein myavr lpt board zusammengelötet und steige gerade etwas in die Materie ein. Schon gibt es ein rätselhaftes Problem, bei dem ich etwas Hilfe brauche. Das Programm wurde mit Bascom geschrieben/kompiliert und mit dem quickprog von myavr auf den atmega8 gebrannt. Es funktioniert, man kann die Pulsweite am Poti regeln. Nur ist es irgendwie viel zu langsam, eine angeschlossene LED blinkt mit ca. etwas über einem Hz. Das müsste doch etwa 1000mal schneller sein, oder? An den Fuses hab ich schon herumgespielt. Schneller ist es nicht geworden, dafür hab ich einen controller verfust :-( Hier das sehr übersichtliche Programm: ----------------------------------------------------------------------- $regfile = "m8def.dat" $crystal = 3686400 Dim Ad As Word Config Portb = Output Config Adc = Single , Prescaler = Auto , Reference = Avcc Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Prescale = 1024 Start Adc Do Ad = Getadc(0) Compare1a = Ad Loop End ------------------------------------------------------------------------ -- Weiß jemand Rat? Grüsse, Thomas.
Ja nee, is klar. Habe kein Oszi, deshalb der Wert 1024 zum mitzählen und hochrechnen :-) Bei prescale = 1 sind es doch dann auch nur 1kHz. Das muss doch schneller gehen..
Du willst eine LED sauber dimmen ? dann stelle den Timer so ein : Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1 Enable Timer1 Start Timer1 Config Adc = Single , Prescaler = Auto , Reference = Avcc Start Adc weitere Tipps findest Du bei : halvar.at
f_cpu = 3686300 Hz f_cpu/(1024 * 2^10) = 3.516 Hz ein Timerdurchlauf, gesetz dem Fall der Timer wird auf 10bit begrenzt dauert damit 0.284 s. Das sieht man blinken!
Vielen Dank. Habe das Programm aus Beispielprogrammfetzen (tolles Wort) zusammengesetzt. Die enable/start timer Anweisungen kannte ich nicht. Jetzt tut es schneller :-) Habe ein Multimeter mit Frequenzmessung gefunden, das zeigt jetzt 7,227 kHz. Das deckt sich ja grob mit der Aussage von "mein Name". Wieso wird die Taktfrequenz jetzt extra noch durch 20 geteilt? Insgesamt würde das ja bei einem 16 MHz Quarz eine max. PWM von 80 kHz bedeuten? Ich betrachte das Ganze noch experimentell. Die LED Dimmung ist schön, könnte mir den avr aber auch als Steuerquelle für Schaltwandler vorstellen. Deshalb hier die "Jagd" nach der max. PWM Frequenz. Grüsse, Thomas. ------------------------------------------------------------------------ $regfile = "m8def.dat" $crystal = 3686400 Dim Ad As Word Config Portb = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1 Enable Timer1 Start Timer1 Config Adc = Single , Prescaler = Auto , Reference = Avcc Start Adc Do Ad = Getadc(0) Compare1a = Ad / 4 Loop End ------------------------------------------------------------------------ --
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.