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