Hi,
nachdem ich den ganzen Tag gebraucht habe um den Schaltungsfehler in meiner LED Matrix zu finden, komme ich bei der Portierung des Reaktivmorsen auf den Mega 8 keinen deut weiter. Wiso Mega 8, naja ich brauche die größere Anzahl an Ausgängen. Wäre schön wenn jemand eine Lösung ( Bascom ) für mich hätte
Danke Olaf
Ps.: es geht um dieses Programm:
nachdem ich den ganzen Tag gebraucht habe um den Schaltungsfehler in meiner LED Matrix zu finden, komme ich bei der Portierung des Reaktivmorsen auf den Mega 8 keinen deut weiter. Wiso Mega 8, naja ich brauche die größere Anzahl an Ausgängen. Wäre schön wenn jemand eine Lösung ( Bascom ) für mich hätte
Danke Olaf
Ps.: es geht um dieses Programm:
'============================================================
'
' ********************************************************
' *** ***
' *** Tiny-Reaktivlicht mit LDR und A/D-Wandler ***
' *** mit Watchdog-Energiesparmodus und Tagabschaltung ***
' *** Ausgabe von Morsesignalen beim Anleuchten ***
' *** ***
' *** erstellt von Windi für www.geoclub.de ***
' *** 04.01.2008 ***
' *** ***
' ********************************************************
'
' µC: ATtiny13V
' +Ub: 3,00 V
' I: 17 µA im Leerlauf (Nachtbetrieb)
' I: 5 µA bei Tagabschaltung
' Reichweite: 650 m mit Maglite 5D
'
'============================================================
$hwstack = 20 'hardwarestack herabsetzen damit genügend variablen zur verfügung stehen
$regfile = "ATtiny13.DAT"
$crystal = 128000 'Frequenz des internen Oszillators
Config Adc = Single , Prescaler = Auto
Config Portb = &B00001000 'Pinb.3 auf 'Ausgang', Rest auf 'Eingang' schalten
Portb = 0 'Ausgänge auf Low setzen
Stop Ac 'Analog-Komparator abschalten, um Strom zu sparen
Wdtcr = &B11010011 'Watchdog definieren: 0.125 Sekunden, Interrupt auslösen, kein Reset
Enable Interrupts 'Interrupts freigeben
Const Schwelle = 50 'je größer der Schwellwert, desto unempfindlicher
Const Tagschwelle = 800 'Schwellwert für Schlafmodus
Const Zwangsimpuls = 8 'LED-Impuls tagsüber alle X Schlafyklen (á ca. 8 Sekunden)
Dim A As Byte 'Variablen definieren
Dim Tagzaehler As Byte
Dim Schlafzaehler As Byte
Dim Ldr As Integer '0 = Dunkel, 1023 = Hell
Dim Alt As Integer
Dim Merker As Integer
Dim Zeichen As String * 1
Do
Reset Watchdog
Powerdown 'prozessor bremsen da sonst lichtänderung nicht erkannt wird
Start Adc 'A/D-Wandler starten
Ldr = Getadc(2) 'Helligkeitswert einlesen
Stop Adc 'A/D-Wandler zum Stromsparen wieder stoppen
Merker = Ldr - Alt 'Unterschied zwischen letzter und aktueller Messung ermitteln
Alt = Ldr 'letzten LDR-Wert sichern
If Merker > Schwelle Then Gosub Morsen 'Bei großer Änderung Dunkel->Hell: Blinken
If Ldr > Tagschwelle Then 'prüfen ob helligkeit über tagschwelle liegt
If Tagzaehler < 255 Then 'int-variable geht nur bis 255
Tagzaehler = Tagzaehler + 1
End If
Else
Tagzaehler = 0 'wenn wieder dunkel tagzähler löschen
End If
If Tagzaehler > 200 Then Gosub Pause 'wenn mehr als x zyklen hell dann schlafmodus
Loop
Pause:
Wdtcr = &B11110001 'Watchdog auf 8 Sekunden stellen
Reset Watchdog
Powerdown
Wdtcr = &B11010011 'Watchdog wieder auf 0,125 Sekunden zurückstellen
Schlafzaehler = Schlafzaehler + 1 'merken wie oft Schlafmodus durchlaufen wurde
If Schlafzaehler = Zwangsimpuls Then 'als Funktionskontrolle tagsüber LED auslösen
Portb.3 = 1
Reset Watchdog
Powerdown
Portb.3 = 0
Schlafzaehler = 0
End If
Return
Morsen:
Restore Daten 'Am Beginn der Daten anfangen
Alt = 1023 'Doppelauslösung verhindern
Do
Read Zeichen
Wdtcr = &B11010100 'Watchdog auf 250ms stellen
If Zeichen = "*" Then Gosub Kurz
If Zeichen = "-" Then Gosub Lang
If Zeichen = " " Then Gosub Leer
Wdtcr = &B11010011 'Watchdog wieder auf 125ms stellen
If Zeichen = "X" Then Return
Loop
Kurz:
Portb.3 = 1
Reset Watchdog
Powerdown
Portb.3 = 0
Reset Watchdog
Powerdown
Return
Lang:
Portb.3 = 1
Reset Watchdog
Powerdown
Reset Watchdog
Powerdown
Reset Watchdog
Powerdown
Portb.3 = 0
Reset Watchdog
Powerdown
Return
Leer:
Reset Watchdog
Powerdown
Reset Watchdog
Powerdown
Return
End
Daten:
Data "*" , "-" , " " 'A
Data "-" , "-" , "*" , "*" , "*" , " " '7
Data "-" , "*" , "*" , "*" , " " 'B
Data "*" , "*" , "*" , "*" , "-" , " " '4
Data "X"