Hallo!
Ich bin gerade dabei meinem Robby das genaue Geradeausfahren bei zu bringen. Dazu habe ich jedem Motor eine Gabellichtschranke verpasst die jede Umdrehung zwei Impulse abgibt.
Um die Sachen zu testen habe ich folgendes Programm geschrieben:
Code:$baud = 19200 $regfile = "m8def.dat" $crystal = 4000000 Config Pinb.1 = Output Config Pinb.2 = Output Ddrd = &B11000011 'PD2+3+4 Eingang, Rest Ausgang On Int0 Rad 1 'Interrupt-Routine für motor1 On Int1 Rad 2 'Interrupt-Routine für motor2 1 Config Int0 = Falling 'Interrupt 0 bei H/L-Flanke auslösen Config Int1 = Falling 'Interrupt 1 bei H/L-Flanke auslösen Dim Um1 As Integer Dim Um2 As Integer Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1 Enable Interrupts Enable Int0 'Externen Interrupt 0 einschalten Enable Int1 'Externen Intterrupt 1 einschalten Pwm1a = 100 Pwm1b = 140 Do Waitms 200 Print Um1 ; " " ; Um2 ; "*" Loop Rad1: Incr Um1 Return Rad2: Incr Um2 Return
(Die Pull-up´s hab ich mit Absicht nicht an da das meine externe Beschaltung alles Übernimmt (OP).)
Das Problem bei meinem Code ist leider, dass sich nur Um1 erhöht und Um2 nur wenn der Motor 1 (Um1) steht.
Ich bin mir sicher Ihr könnt mir da helfen!
Gruß Georg







Zitieren

Lesezeichen