Bei deinen Sub Led1-3 hast du immer den selben Port eingeschaltet.
mfg Axi
Würde gerne bestimmte LED´s auf tastenabfrage ansteuern also drücke taste x um LED y zum leuchten zu bringen!
Jetzt habe ich keine Ahnung mehr was ich überhaupt gemacht habe, ich glaube das sieht man auch am CODE ..
Habe jetzt die ganze zeit rum probiert jetzt habe ich ein knoten im kopf, hilfe wer super !
THX Dirk
Ich weiß sieht ganz schön Besch... aus .!Code:'********************************************************************* $regfile = "m32def.dat" ' bei Mega 16 $regfile = "m16def.dat" $framesize = 32 $swstack = 32 $hwstack = 32 $crystal = 16000000 'Quarzfrequenz $baud = 9600 '********************************************************************* Declare Function Tastenabfrage() As Byte Declare Sub Led1() Declare Sub Led2() Declare Sub Led3() 'Porta.7 = 1 Config Pina.7 = Input 'Für Tastenabfrage Config Portc = Output Dim Taste As Byte Config Adc = Single , Prescaler = Auto 'Portc.1 = 0 Do 'Print " Warte auf Eingabe!" ' Wait 10 Taste = Tastenabfrage() If Taste <> 0 Then Select Case Taste Case 1 Call Led1 Case 2 Call Led2 Case 3 Call Led3 End Select Sound Portd.7 , 400 , 500 'BEEP Wait 10 End If Wait 10 Loop End Sub Led1 Portc.3 = 1 Print "LED1 ist an" End Sub Sub Led2 Portc.3 = 1 Print "LED1 ist an" End Sub Sub Led3 Portc.3 = 1 Print "LED1 ist an" End Sub
Bei deinen Sub Led1-3 hast du immer den selben Port eingeschaltet.
mfg Axi
Ich weiß aber das kann ja nicht das prop sein oder?
dir fehlt noch das Unterprogramm Tastenabfrage()
mfg Axi
(aus dem Beispielprogramm vom RN-Control)Code:'Diese Unterfunktion fragt die Tastatur am analogen Port ab Function Tastenabfrage() As Byte Local Ws As Word Tastenabfrage = 0 Ton = 600 Start Adc Ws = Getadc(7) ' Print "Tastenabfrage anpassen!ADC Wert ws=" ; Ws If Ws < 500 Then Select Case Ws Case 400 To 450 Tastenabfrage = 1 Ton = 550 Case 330 To 380 Tastenabfrage = 2 Ton = 500 Case 260 To 305 Tastenabfrage = 3 Ton = 450 Case 180 To 220 Tastenabfrage = 4 Ton = 400 Case 90 To 130 Tastenabfrage = 5 Ton = 350 ' Case Else ' Print "Tastenabfrage anpassen!ADC Wert ws=" ; Ws End Select Sound Portd.7 , 400 , Ton 'BEEP End If End Function
mfg Axi
Axo
kann mir jemand den code erklären ?
komentare reichen!
THX
hast du das RN-Control Board? im groben funktioniert es so:zuerst ließt das prog den analogen Eingang ein (je nach dem welche taste gedrückt ist liegt eine andere Spannung am analogen eingang an) Die Werte die oben angegeben sind stimmen fürs RN-Control.
Die 1. Taste liefert zb einen Wert zwischen 400 und 450. Dann schaut das Prog welche Taste gedrückt würde (mit der Select Case Anweisung) und speichert die dann (Tastenabfrage =1 bis 5). Danach gibt das Unterprog den Wert zurück (also 1-5 je nach taste). ich hoffe die erklärung stimmt und ist einigermaßen verständlich
mfg Axi
AAaaaa
ja habe ich!!
Mir geht ein Licht auf oder auch zwei vielen Dank ..
THX Dirk
ich habe auch so ein ähliches problem: und zwar habe ich eine unterroutine, die alle leds einschalten soll (betonung liegt auf soll), wenn die taste 3 gedrückt wird.
und zwar:
das programm führt diese unterroutine 100%ig aus, da ich eine print anweisung am ende eingefügt hatte, und diese ausgeführt wurde. allerdings haut das mit den leds noch nicht so hin.Code:Sub Leds() Config Portc = Output Portc.0 = 0 Portc.1 = 0 Portc.2 = 0 Portc.3 = 0 Portc.4 = 0 Portc.5 = 0 Portc.6 = 0 Portc.7 = 0 Config Portc = Input End Sub
wenn ich aber diesen code nicht in eine subroutine packe, sondern im "hauptteil" des programms, also ganz oben, direkt nach "do" funktioniert alles anstandslos.
woran könnte das liegen?
lg
ikarus_177
Warum stelltst Du den Port danach wieder auf Input ?
Lesezeichen