| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!

View
 

Reaktivlicht mit sanftem Blinken für ATtiny13V

Page history last edited by schnasemann 14 years, 4 months ago

Hier die Glimm- oder Glühversion (Ein- und Ausfaden) für 128kHz mit Soft-PWM.

Es werden nicht alle Tabellenwerte der Fadingtabelle komplett genutzt.

Schaltung wie folgt:

LED Anode an Pin3, LED Kathode an Pin 4 (GND). Batterie + an Pin 8, Batterie - an Pin 4.

Ganz unten auch Downloadmöglichkeiten und Einstellungen der Fuses.

 

' Reaktivlicht mit Glimmen (Fadein- und Fadeout)

 

' Version 1.0

' (c) geoclub 2009 & schnasemann

 

$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 Wert1 As Word

Dim Wert2 As Word

Dim Schwelle As Word

Dim Anzahl As Byte

Dim Soft1 As Byte

Dim Soft2 As Byte

Dim Aktuell As Byte

Dim Zwisum As Byte

Dim Soft3 As Word

Const Dunkelwert = 18 ' Wert, ab dem Nacht erkannt wird

Const Hub = 10

Do

Wdtcr = &B11010100 'Watchdog auf 250ms einstellen

Reset Watchdog

Powerdown

Start Adc

Config Portb.4 = Output 'LED "entladen"

Portb.4 = 0

'Waitus 1500

Wdtcr = &B11010000 'Watchdog auf 16ms einstellen

Reset Watchdog

Powerdown

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 + Hub 'Schwelle festlegen, je kleiner desto empfindlicher

If Wert1 < Dunkelwert And Wert2 >= Schwelle Then 'Dunkelschwelle festlegen, je kleiner desto dunkler

Gosub Blitz

End If

If Wert1 >= Dunkelwert And Wert2 >= Dunkelwert Then 'bei Tag oder Dauerlicht Watchdog aktivieren

Wdtcr = &B11110001 'Watchdog auf 8s einstellen Reset Watchdog Powerdown

End If

Wert1 = Wert2 'Wert2 nach Wert1 verschieben

Loop

Blitz: 'LED faden lassen

Config Portb.4 = Output

Portb.4 = 0

For Anzahl = 1 To 10

For Soft1 = 0 To 31 Aktuell = Lookup(soft1 , Fade) For Soft2 = 0 To 150
If Soft2 < Aktuell Then Portb.4 = 1 Else Portb.4 = 0 End If Next Soft2 Next Soft1 For Soft1 = 0 To 31 Zwisum = 31 - Soft1 Aktuell = Lookup(zwisum , Fade) For Soft2 = 0 To 150 If Soft2 < Aktuell Then Portb.4 = 1 Else Portb.4 = 0 End If Next Soft2 Next Soft1 Portb.4 = 0 Wdtcr = &B11010100 'Watchdog auf 250ms einstellen Reset Watchdog Powerdown Reset Watchdog Powerdown

Next Anzahl

Return

End

Fade:

Data 0 , 1 , 2 , 2 , 2 , 3 , 3 , 4 , 5 , 6 , 7 , 8 , 10 , 11 , 13 , 16 , 19 , 23 , 27 , 32 , 38 , 45 , 54 , 64 , 76 , 91 , 108 , 128 , 152 , 181 , 215 , 255

 

Hier der obige Code als Bascom-File: reaktivlicht_nur_wdt_ohne_daylightflash_fadeinout.bas

Hier das Ganze als Hex-File: reaktivlicht_nur_wdt_ohne_daylightflash_fadeinout.hex

 

Die Fuses sind wie folgt gesetzt:

 

Weiteres über die Controller und Einstellungen der Fuses auch unter Atmel Mikrocontroller

 

und so sieht das ganze dann im Video aus:

YouTube plugin error

 

Comments (0)

You don't have permission to comment on this page.