Jannek
12.05.2007, 19:23
Hallo liebe Robotergemeinde!
Heute mal mein erster post hier. Habe schon sehr viel hier gelesen und muss sagen WOW.
Aber nun zu meinen Problem.
Spiele momentan ein wenig mit Bascom rum und Bastele momentan an einen kleinen Projekt. Damit der Code auch wann funzt Arbeite ich gernen immer zuerst kleine Teile des Programmes aus um mich mit Bascom etc genauer vertraut zu machen.
Kurz zur Funktion:
Der Kontroller macht nichts aus das am LCD "in Schleife "steht. Bis ein Interrupt an INT0 kommt. Dann soll es ausgeben Interrupt und soll bei jeden Interrupt eine Var erhöhen und im gleichen anzeigen. Das Problem ist das er bei jedem Interrupt die Variable um 2 erhöht und nicht um 1.
hier der Code:
$regfile = "m8def.dat" '
$crystal = 10000000 'Quarz: 10,0 MHz
'---Config für LCD -----------------
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , Rs = Portb.4 , E = Portb.5
Config Lcdbus = 4
Config Lcdmode = Port
Cursor On
'******** Initialisierung ********
Dim A As Byte
Enable Interrupts
Config Int0 = Falling
Enable Int0
On Int0 Irq
Config Portd.2 = Input 'interrupt
'Debounce Portd.2 , 1 , Irq
'******** Hauptprogramm ********
Do
Cls
Locate 1 , 1
Lcd "in schleife"
Wait 2
Loop
'******** Unterprogramme ********
Irq:
Cls
Incr A
Locate 1 , 1
Lcd " Interrupt"
Lowerline
Lcd " A = " ; A ; ""
Wait 1
Return
End
würde mich freuen wenn ich von euch ein wenig hilfe bekommen könnte.
mfg Jannek
Heute mal mein erster post hier. Habe schon sehr viel hier gelesen und muss sagen WOW.
Aber nun zu meinen Problem.
Spiele momentan ein wenig mit Bascom rum und Bastele momentan an einen kleinen Projekt. Damit der Code auch wann funzt Arbeite ich gernen immer zuerst kleine Teile des Programmes aus um mich mit Bascom etc genauer vertraut zu machen.
Kurz zur Funktion:
Der Kontroller macht nichts aus das am LCD "in Schleife "steht. Bis ein Interrupt an INT0 kommt. Dann soll es ausgeben Interrupt und soll bei jeden Interrupt eine Var erhöhen und im gleichen anzeigen. Das Problem ist das er bei jedem Interrupt die Variable um 2 erhöht und nicht um 1.
hier der Code:
$regfile = "m8def.dat" '
$crystal = 10000000 'Quarz: 10,0 MHz
'---Config für LCD -----------------
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , Rs = Portb.4 , E = Portb.5
Config Lcdbus = 4
Config Lcdmode = Port
Cursor On
'******** Initialisierung ********
Dim A As Byte
Enable Interrupts
Config Int0 = Falling
Enable Int0
On Int0 Irq
Config Portd.2 = Input 'interrupt
'Debounce Portd.2 , 1 , Irq
'******** Hauptprogramm ********
Do
Cls
Locate 1 , 1
Lcd "in schleife"
Wait 2
Loop
'******** Unterprogramme ********
Irq:
Cls
Incr A
Locate 1 , 1
Lcd " Interrupt"
Lowerline
Lcd " A = " ; A ; ""
Wait 1
Return
End
würde mich freuen wenn ich von euch ein wenig hilfe bekommen könnte.
mfg Jannek