Hi
Wegen dem problem das dein prog nicht der sprungmarke folgt könntest du dir den befehl debounce mal anschauen:
Do
debounce Taster1 ->marke1
debounce Taster2 ->marke2
loop
marke1:
...
marke2:
...
end
mfg hackspider
Hi,
ich bin am verzweifeln mein kleines Prog geht einfach nich so wie ich will schaut mal drüber. wenn ich denn taster drück geht er nich in die schleife und wenn die taster dinger drausen sind wechsel die leds nicht. kann ich das vieleicht anders lösen und das is falsch oder bin ich nur zu "dumm".
Code:$regfile = "m8def.dat" $crystal = 4000000 $baud = 19200 Config Pinb.1 = Output Config Pinb.2 = Output Config Pind.6 = Input Config Pind.5 = Input Config Pinc.0 = Output Config Pinc.1 = Output Config Pinc.2 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1024 Do Sound Portc.2 , 400 , 450 anfangs ein sound If Pind.6 = 1 Then taster abfrage Goto Vor End If Sound Portc.2 , 400 , 250 eine sound If Pind.5 = 1 Then und anderer taster Goto Zuruck End If Loop Und von vorne Vor: Compare1a = 100 motor leuft vor Portc.0 = 1 Waitms 50 Portc.1 = 0 Waitms 50 Zuruck: motor leuft zuruek Compare1a = 100 Portc.0 = 0 Waitms 50 Portc.1 = 1 Waitms 50 End
ich hoffe ihr könnt mir helfen oder es mir einfach besser zeigen.
das ich nicht die schönsten progs der welt schreibe weiss ich.
compliemirt habe ich ohne kommentare ins ja klar oder so .......
mfg m.r.
Hi
Wegen dem problem das dein prog nicht der sprungmarke folgt könntest du dir den befehl debounce mal anschauen:
Do
debounce Taster1 ->marke1
debounce Taster2 ->marke2
loop
marke1:
...
marke2:
...
end
mfg hackspider
hi,
ich werde mir das gleic mal durch arbeiten aber ich habe da jetzt noch was anderes gemacht ich habe micro basic for AVR von mikroelektronika genommen das da war ein bsp für butons und das ist auch mit if das habe ich comp... und mit AVR studio in den mega 8 gebrannt und das funkt richtig gut
also Bascom hat irgend wie ein problem mit mir.oder soCode:program Led_Blinking1_avr_mega_8 main: DDRC = $FF ' PORTC to be output PORTC = $00 ' Turn off the led on PORTC PortB = $00 while TRUE if Button(PORTB, 0, 100, 0) = TRUE then ' if button on PORTB.0 is 5v for 100ms PORTC = $01 ' then turn on LED on PORTC.0 end if if Button(PORTB, 1, 100, 0) = TRUE then PORTC = $02 end if if Button(PORTB, 2, 100, 0) = TRUE then PORTC = $04 end if if Button(PORTB, 3, 100, 0) = TRUE then PORTC = $08 end if wend end. end.
Hi
was ich schnell imüberblick gesehen habe verwendest du "GOTOxxxx"
nur sehe ich nicht das du in Die DO LOOP Scheife zurück kehrst!
stimmt merke ich erst jetzt. (das mache ich doch dann mit goto do oder )
upps naja mein fehler da habe ich wohl geschlafen das prog habe ich nachts um 3 geschrieben.
mfg
m.r.
So müste es gehen
Code:$regfile = "m8def.dat" $crystal = 4000000 $baud = 19200 Config Pinb.1 = Output Config Pinb.2 = Output Config Pind.6 = Input Config Pind.5 = Input Config Pinc.0 = Output Config Pinc.1 = Output Config Pinc.2 = Output declare sub vor declare sub zuruck Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1024 Do Sound Portc.2 , 400 , 450 'anfangs ein sound If Pind.6 = 1 Then Vor End If Sound Portc.2 , 400 , 250 ' eine sound If Pind.5 = 1 Then Zuruck End If Loop ' Und von vorne sub vor Compare1a = 100 'motor leuft vor Portc.0 = 1 Waitms 50 Portc.1 = 0 Waitms 50 end sub sub Zuruck 'motor leuft zuruek Compare1a = 100 Portc.0 = 0 Waitms 50 Portc.1 = 1 Waitms 50 end sub End
Das goto Do kenn ich nur von "C" aber in Bascom was ich weis funkt es nicht
Wenn du Prozessor wärest, so must du das sehen, warum sollte dein Programm nach der ersten Sprungmarke und den nachfolgenden Anweisungen zurück springen und bei welcher Anweisung, steht ja nicht's, also nimmt er den nächsten Befehl und so weiter.
Mein Vorschreiber macht's richtig. Er benutzt gosub mit deklaration und end sub usw. Da wird es richt gut aufgezeigt.
Allerdings sieht man nicht so erklärend (für einen Anfänger), dass Gosub benutzt wird. Aber so ist es super gemacht.
Lesezeichen