Habs jetzt ein bisschengeändert.
Der Simulator wollte kein Byte bei der Variabel : Spaltenzeit.Code:'--------Drehlicht-----V1.07--------------- ' 8MHz RC Intern $regfile = "m8def.dat" $crystal = 8000000 $hwstack = 200 $swstack = 200 $framesize = 200 '---Config Port's ----------------- Config Portb = Output Portb = 255 Config Portd = Input Portd = 255 '---config Int0------ Config Int0 = Falling Enable Int0 On Int0 Kontakt '--- Config Timer1 ---- Config Timer1 = Timer , Prescale = 1024 Enable Timer1 '--- Config Timer0 ------ Config Timer0 = Timer , Prescale = 8 Enable Timer0 On Timer0 Spalten Enable Interrupts Load Timer0 , 255 Dim Drehzeit As Word Dim Spaltenzeit As Byte Dim Auftrag As Word Auftrag = 0 '--------------------Hauptprogramm-------------------------- Do Loop End '==============================Unterprogramme=================================== '--------------ISR von Int0-------------------- Kontakt: Drehzeit = Timer1 Timer1 = 0 Spaltenzeit = Drehzeit / 2 Auftrag = 0 Return '------------ISR von Timer0 -------------------- Spalten: Load Timer0 , Spaltenzeit If Auftrag < 100 Then Toggle Portb Incr Auftrag End If Return
Bei AVR macht das aber nix aus. (Darum wieder auf Byte geändert)
Haltet jetzt so ungefähr die Lage. Aber nicht schön![]()
Wenn man den Motor in der Drehzahl verändert, merkt man genau wo er auf oder Abrundet .....
Ein zweiter 16bit Timer wäre da wohl viel genauer![]()







Zitieren

Lesezeichen