Hucky3000
Geocacher
Tach !
Es muss mal wieder schnell gehen
Bin gerade am basteln (muss fertig werden). Habe gemerkt, dass die Only Version (nur eine LED an PB4 - sonst nichts) mit 4,5 V nicht funzt. Damit es überhaupt geht habe ich erstmal zwei Dioden vor UB gelegt.
Da ich aber nen Servo ansteuern möchte und keine zwei Spannungsquellen benutzen möchte würde ich gerne wissen WAS ich genau in dem Code ändern muss.
Die Only Variante ist mit 3V angegeben. Als LED benutz ich ne 7000er, würde aber gerne auf eine 4000er zurückgreifen, weil ich davon noch genug habe.
Ich habe zum probieren erstmal das PRG von "meinem" SOS-Blinker benutzt:
Hucky
Es muss mal wieder schnell gehen
Bin gerade am basteln (muss fertig werden). Habe gemerkt, dass die Only Version (nur eine LED an PB4 - sonst nichts) mit 4,5 V nicht funzt. Damit es überhaupt geht habe ich erstmal zwei Dioden vor UB gelegt.
Da ich aber nen Servo ansteuern möchte und keine zwei Spannungsquellen benutzen möchte würde ich gerne wissen WAS ich genau in dem Code ändern muss.
Die Only Variante ist mit 3V angegeben. Als LED benutz ich ne 7000er, würde aber gerne auf eine 4000er zurückgreifen, weil ich davon noch genug habe.
Ich habe zum probieren erstmal das PRG von "meinem" SOS-Blinker benutzt:
Code:
'===============================================================================
'*************************************
'*** ***
'*** LED only ***
'*** SOS-Morsen ***
'*** 02.12.09 ***
'*** ***
'*************************************
'===============================================================================
$regfile = "ATtiny13.DAT"
$crystal = 128000 'Reale Frequenz des internen 128kHz-Oszillators
$hwstack = 10 ' default use 32 for the hardware stack
$swstack = 10 'default use 10 for the SW stack
$framesize = 10 'default use 40 for the frame
Stop Ac
Config Portb = &B11101111 'Portb.4 auf 'Eingang' schalten
Portb = &B00000000
'keine Pullups zuschalten
Wdtcr = &B11010100 'Watchdog auf 250ms einstellen
Enable Interrupts
Config Adc = Single , Prescaler = Auto , Reference = Internal 'referenzspannung Des Adc Auf "Internal" = 1,1 V
Dim A As Byte
Dim Wert1 As Word
Dim Wert2 As Word
Dim Schwelle As Word
Dim Morse$ As String * 10 '10 Takte, die gemorst werden sollen
Dim S$ As String * 1 'Merken zum Morsen (aktueller Takt)
Wert1 = 1023 'Wert 1 vor der ersten Messung definieren
Do
Wdtcr = &B11010100 'Watchdog auf 250ms einstellen
Reset Watchdog
Powerdown
Start Adc
Config Portb.4 = Output 'LED "entladen"
Portb.4 = 0
Waitus 1500
Config Portb.4 = Input
Portb.4 = 0
cbi adcsra,7 'ADEN = 0
Wdtcr = &B11010000 'Watchdog auf 16ms einstellen
Reset Watchdog
Powerdown
sbi adcsra,7 'ADEN = 1
Wert2 = Getadc(2) 'Spannung der LED messen
Stop Adc
Schwelle = Wert1 + 10 'Schwelle (10 heller als Signal)festlegen, je kleiner so empfindlicher
If Wert1 < 30 And Wert2 > Schwelle Then 'Dunkelschwelle (30) festlegen, je kleiner umso dunkler
Gosub Morsen
End If
If Wert1 > 29 And Wert2 > 29 Then 'bei Tag oder Dauerlicht Watchdog x n aktivieren
Wdtcr = &B11110001 'Watchdog auf 8s einstellen
Reset Watchdog
Powerdown
Reset Watchdog
Powerdown
Reset Watchdog
Powerdown
Reset Watchdog
Powerdown
End If
Wert1 = Wert2 'Wert2 nach Wert1 verschieben
Loop
Morsen:
Config Portb.4 = Output
Portb.4 = 0
Morse$ = "***---***" 'String aus 10 Zeichen * = kurz - = lang
For A = 1 To 9 '10 Zeichen auslesen und auswerten
S$ = Mid(morse$ , A , 1) 'Teilstring auslesen
If S$ = "*" Then 'wenn kurz blinken
Portb.4 = 1 ' LED an
Waitms 120 ' kurz warten
Portb.4 = 0 ' LED aus
Waitms 300 'lang warten
Else 'sonst lang blinken
Portb.4 = 1 ' LED AN
Waitms 550 'lange warten
Portb.4 = 0 'LED Aus
Waitms 300 'lang warten
End If
Next A
Return
End
Hucky