Hallo
Also vielen dank nochmal für die Hilfe.
Hier der Code:
Code:$regfile = "m32def.dat" $framesize = 32 $swstack = 32 $hwstack = 32 $crystal = 16000000 $baud = 9600 Declare Sub Plussekunde() Declare Sub Plusminute() Declare Sub Plusstunde() Declare Sub Clockstart() Declare Sub Plustag() Declare Function Tastenabfrage() As Byte Dim I As Integer Dim N As Integer Dim Ton As Integer Dim Sekunde As Word Dim Minute As Word Dim Stunde As Word Dim Wochentag As String * 12 Dim Tag As Word Dim Taste As Byte Config Portc = Output Portc = 11111111 Config Adc = Single , Prescaler = Auto 'Für Tastenabfrage und Spannungsmessung Config Pina.7 = Input 'Für Tastenabfrage Porta.7 = 1 Tag = 1 Do Taste = Tastenabfrage() If Taste <> 0 Then Select Case Taste Case 1 Call Plussekunde Case 2 Call Plusminute Case 3 Call Plusstunde Case 4 Call Clockstart Case 5 Call Plustag End Select Sound Portd.7 , 400 , 500 'BEEP End If Waitms 100 If Sekunde = 60 Then Sekunde = 0 Minute = Minute + 1 Else End If If Minute = 60 Then Minute = 0 Stunde = Stunde + 1 Else End If If Stunde = 24 Then Stunde = 0 Tag = Tag + 1 End If If Tag > 7 Then Tag = 1 End If 'Select Case Tag 'Case 1 Wochentag = "Montag" 'Case 2 Wochentag = "Dienstag" 'Case 3 Wochentag = "Mittwoch" 'Case 4 Wochentag = "Donnerstag" 'Case 5 Wochentag = "Freitag" 'Case 6 Wochentag = "Samstag" 'Case 7 Wochentag = "Sonntag" 'Else Case 'End Select Select Case Tag Case 1 Wochentag = "Montag" Case 2 Wochentag = "Dienstag" Case 3 Wochentag = "Mittwoch" Case 4 Wochentag = "Donnerstag" Case 5 Wochentag = "Freitag" Case 6 Wochentag = "Samstag" Case 7 Wochentag = "Sonntag" End Select Loop End Function Tastenabfrage() As Byte Local Ws As Word Tastenabfrage = 0 Ton = 600 Start Adc Ws = Getadc(7) 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 End Select Sound Portd.7 , 400 , Ton End If End Function Sub Plussekunde() Sekunde = Sekunde + 1 Print Wochentag ; ", " ; Stunde ; ":" ; Minute ; ":" ; Sekunde End Sub Sub Plusminute() Minute = Minute + 1 Print Wochentag ; ", " ; Stunde ; ":" ; Minute ; ":" ; Sekunde End Sub Sub Plusstunde() Stunde = Stunde + 1 Print Wochentag ; ", " ; Stunde ; ":" ; Minute ; ":" ; Sekunde End Sub Sub Plustag() Tag = Tag + 1 Print Wochentag ; ", " ; Stunde ; ":" ; Minute ; ":" ; Sekunde End Sub Sub Clockstart() Config Timer1 = Timer , Prescale = 256 'Konfiguriere Timer1 Enable Interrupts Enable Timer1 Sekunde = Sekunde + 1 ' + 1Sekunden für Timerausgleich On Timer1 Isr_von_timer1 'verzweige bei Timer1 überlauf zu Isr_von_Timer1 Enable Interrupts Timer1 = 68570 'Timer1 soll schon von 34285 wegzählen End Sub Isr_von_timer1: 'ISR von Timer1 Timer1 = 68570 'Sound Portd.7 , 400 , 550 'Print "Stunde" ; Stunde ; " Minute:" ; Minute ; " Sekunde:" ; Sekunde Print Wochentag ; ", " ; Stunde ; ":" ; Minute ; ":" ; Sekunde Sekunde = Sekunde + 1 Toggle Portc.0 Return
Ich werde mal sehen ob ich das noch besser hinbkomme.
Gibt es ausser der Bascom hilfe noch was wo das beschrieben wird?
Weil ich verstehe es immre besser wen's auf deutsch istt![]()
Gruß Dominik







Zitieren

Lesezeichen