PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sleep und Idle



wolleausmallo
25.04.2007, 14:33
Hallo Zusammen. Mein Code funktioniert bis auf den Idle-Modus. Bitte helft mir den Fehler zu finden:

$regfile = "2313def.dat"
$crystal = 3686400 '64
Config Timer1 = Timer , Prescale = 64 'Vorteiler der Quarzfrequenz
Config Timer0 = Timer , Prescale = 64
Config Pinb.2 = Output 'Pinb.2 als Sekundenanzeige
Led3 Alias Portb.2 'Anderer Name für Portb.2

Config Pinb.7 = Output '-------Pinb.7 als Motorschalter

Config Pinb.1 = Input '-------Pin für die Sommerprogrammierung(Kontrollpin)
Kontrollpin Alias Pinb.1 '--------Alias für die Sommer/Winterprogrammierung

'Config Pinb.3 = Input
'Powerpin Alias Portb.3

Config Pind.2 = Input 'Powercontrol (Stromausfallindikator)
Powercontrol Alias Pind.2

Mcucr = &B00111000


On Timer1 Timer_irq
Const Timervorgabe = 7936 'Bei Interruptanforderung Sprung und Timervoreinstellung
Enable Timer0
Start Timer0

On Int0 Int0_isr
Enable Int0
Enable Timer1 'Timer1-Freigabe(Zeitbasis 1Sek)
Enable Interrupts ' Dimensionierungen





Dim Sekunde As Byte
Dim Minute As Byte
Dim Stunde As Byte
Dim Motor As Byte

Declare Sub An 'Declarationen der Unterprogramme
Declare Sub Aus
Declare Sub Sommer
Declare Sub Winter
Declare Sub Aufwachen

'Portd.2 = 0
Portb.1 = 1
Portb.3 = 0
Portb.7 = 0 ' Relaisausgang auf 0
Stunde = 12

'Endlosschleife mit Hauptprogramm
Do

While Pind.2 = 0
Led3 = 0
Portb.7 = 0
Idle
Wend



If Kontrollpin = 0 Then Gosub Sommer
If Kontrollpin = 1 Then Gosub Winter

Loop




Sommer: 'Unterprogramm für den Sommer

If Stunde = 12 Then Gosub An
If Stunde = 20 Then Gosub An
If Stunde = 14 Then Gosub Aus
If Stunde = 22 Then Gosub Aus
'Stunde = 24 dann von vorne
Return



Winter: 'Unterprogramm für den Winter


If Stunde = 0 Then Gosub An
If Stunde = 12 Then Gosub An
If Stunde = 3 Then Gosub Aus
If Stunde = 13 Then Gosub Aus


Return





An: 'Unterprogramm Motor an
Portb.7 = 1
Return




Aus: 'Unterprogramm Motor aus
Portb.7 = 0
Return


Int0_isr: 'Interrupt für das Aufwachen

Return




Timer_irq: 'Interruptroutine für 1 Sekunde Zeitschleife

Timer1 = Timervorgabe
Toggle Led3
Incr Sekunde
Print Sekunde
If Sekunde = 60 Then 'Zählschleifen für Sekunden - Minuten - und Stunden
Incr Minute
Sekunde = 0
If Minute = 60 Then
Incr Stunde
Minute = 0
If Stunde = 24 Then
Stunde = 0
Minute = 0
Sekunde = 0
End If
End If
End If

Return

Grüße
Wolle

wolleausmallo
26.04.2007, 09:41
Habe ich ein Mal auf der Stirn??? Niemand hilft mir. Früher war dieses Forum hifsbereiter(zumindestens habe ich diesen Eindruck, da dies mein zweiter unbeantworterter Thread ist)

Grüße
Wolle :evil:

Ratber
26.04.2007, 10:23
Genau diese Einstellung vergällt einem den Spaß am Helfen.

Schönes Wochenende. =;

wolleausmallo
26.04.2007, 17:35
Eine Woche liegt zwischen dem ersten und zweiten Thread.
Gruß an Dich NICHT RAT(GE) :Weihnacht BER
Wolle

Chill
27.04.2007, 09:40
Du zeigst eine ziemliche Erwartungshaltung das die Leute hier Tag und Nacht Gewehr bei Fuß bereitstehen nur um deine Frage zu beantworten.
Und das Gratis.

Glaubst du jetzt mit beleidigungen weiter zu kommen ?

wolleausmallo
27.04.2007, 10:53
Hiermit nehme ich meine als beleidigend verstanden werden könnenden Außerungen zurück.
Wenn ich an einem Projekt arbeite und nicht weiter komme kann ich schon mal nervös werden.

Grüße an alle
Wolle