hallo rolf,
danke für deine antwort!
allerdings funktioniert das so nicht![]()
ich habe hier mal meinen code, vielleicht kannst du dir das ja mal ansehen?!?!
währe nett von dir!
das gilt natürlich für alle![]()
im prinzip möchte ich ja nur, dass der code in case 3 bis zu einem tastendruck (der dafür sorgt, dass das prog zu einem anderem case springt) ausgeführt wird und dann soll der andere case-code laufen.Code:$regfile = "m32def.dat" $crystal = 16000000 $baud = 9600 $hwstack = 32 $swstack = 10 $framesize = 40 Declare Function Tastenabfrage() As Byte Declare Sub Batteriespannung() Config Lcd = 20 * 4 Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.4 , Rs = Portc.5 Config Lcdbus = 4 Config Adc = Single , Prescaler = Auto Config Pina.7 = Input Porta.7 = 1 Config Timer1 = Timer , Prescale = 1024 Enable Timer1 Enable Interrupts Timer1 = 49910 On Timer1 Isr_von_timer1 Config Timer0 = Counter , Edge = Falling Enable Timer0 Timer0 = 255 On Timer0 Isr_von_timer0 Dim A As Integer Dim Taste As Byte Dim Volt As Single Dim Secu As Single Dim Minu As Single Dim Hour As Single Dim X As Single Dim Tasten_flag As Byte Dim F As Single Dim T As Single Dim Freq As Single Dim N As Long Const Ref = 5 / 1023 A = 1 X = 1 Secu = 00 Minu = 00 Hour = 00 T = 0 Tasten_flag = 0 F = 0 Cls Locate 1 , 4 Lcd "Daten-Terminal " Locate 2 , 1 Lcd "Zeit = " Locate 2 , 8 Lcd Hour ; Minu ; Secu Do Taste = Tastenabfrage() If Taste <> 0 Then Select Case Taste Case 1 Tasten_flag = 0 Call Batteriespannung Case 2 Tasten_flag = 0 Writeeeprom Secu , 1 Writeeeprom Minu , 10 Writeeeprom Volt , 20 Case 3 For N = 1 To 100000000 Freq = F / T Cls Locate 1 , 1 Lcd "Sekunden = " ; T Locate 2 , 1 Lcd "Signale = " ; F Locate 3 , 1 Lcd "==> Frequenz = " Locate 4 , 1 Lcd Freq ; If Taste <> 3 Then Tasten_flag = 1 Exit For End If If Tasten_flag = 1 Then Exit For End If Wait 1 Next N Case 4 Tasten_flag = 0 If Secu = 60 Then Secu = 00 Minu = Minu + 1 Elseif Minu = 60 Then Minu = 00 Hour = Hour + 1 End If Cls Locate 2 , 1 Lcd "Zeit = " Locate 2 , 8 Lcd Hour ; Minu ; Secu ; Waitms 10 Case 5 Tasten_flag = 0 Readeeprom Secu , 1 Readeeprom Volt , 20 Cls Locate 1 , 4 Lcd " Daten-Terminal " Locate 2 , 1 Lcd Secu ; " Sekunden " Locate 3 , 1 Lcd Minu ; " Minuten " Locate 4 , 1 Lcd Volt ; " Volt " End Select End If Loop Isr_von_timer1: Timer1 = 49910 Incr Secu Incr T Return Isr_von_timer0: Timer0 = 255 Incr F Return Function Tastenabfrage() As Byte Local Ws As Word Tastenabfrage = 0 Start Adc Ws = Getadc(7) If Ws < 500 Then Select Case Ws Case 400 To 450 Tastenabfrage = 1 Case 330 To 380 Tastenabfrage = 2 Case 260 To 305 Tastenabfrage = 3 Case 180 To 220 Tastenabfrage = 4 Case 90 To 130 Tastenabfrage = 5 End Select End If End Function Sub Batteriespannung() Local W As Word Start Adc W = Getadc(6) Volt = W * Ref Volt = Volt * 5.2941 Cls Locate 1 , 1 Lcd "Die aktuelle " Locate 2 , 1 Lcd "Spannung betraegt: " Locate 3 , 1 Lcd Volt ; " Volt " Waitms 100 End Sub
gruß
chris







Zitieren
Lesezeichen