PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : zwei externe Interrupts



globe
27.02.2005, 01:43
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:



$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

MrNiemand
27.02.2005, 12:52
hallo, auf den ersten blick seh ich nen fehler im source:

On Int0 Rad 1

sollte On Int0 Rad1 sein, deine subs heisen auch so auserdem geht es in bascom soweit ich weis nicht mit leerzeichen zwischendrin

globe
27.02.2005, 13:24
Oh mann, ja das war es!

Jetzt scheint es zu gehen! O:)

Echt ein ärgerlicher Fehler!

Vielen Dank für Dein waches Auge!!

MrNiemand
27.02.2005, 13:25
np ;) komsich nur bascom bringt bei jenem source bim kompilieren genau da einen fehler

globe
27.02.2005, 16:55
Komisch hats bei mir nicht gemacht..
Naja jetzt gehts ja.