oderlachs
19.02.2013, 18:09
Hallo Freunde und Kenner der Materie !
Ich habe es selber nicht geglaubt, aber ich bin einfach mit einer "FOR TO" Schleife und einer "IF then" Enscheidung nicht fertig geworden.
Bevor ich den Source zeige, möchte ich schnell mal die Aufgabenstellung darlegen. Sie ist eigendlich auch aus dem Code ersichtlich.
Ich benögie für ein Alarmprojekt Zeit/Alarmgeber. Da ich noch einige Attiny13 zu liegen habe, wollte ich diese nutzbringend verwenden.
Programmieren tue ich diese auf einem Pollinboard, welches über ISP10 Kabel mit dem STK500 verbunden ist. Beim STK muss ich zuviel umstöpseln/verbinden bei den 8pol. Tinys.
Natürlich bekomme ich den Chip programmiert, aber nicht ganz so wie ich gern möchte. Die Schleifenzählung wird mit IF nicht ausgewertet, die LED (gegen GND geschaltet),die ich an Stelle von Alarmgebern/Leuchten/Sender beim Test benutze, blinkeln hin und her, aber sind nicht wie gewollt ständig an, bis die Entscheidung in der Zeitschleife sie ausschaltet, bzw ausschalten soll.
Drum hier ein SOS-Ruf meiner seits was habe ich falsch gemacht. Die Fuses sind richtig gesetzt, werde noch Foto anhängen.
Ich sege schon mal Danke an eventuelle Helfer !!!
Gerhard
'Alarmgeber mit ATTINY13
$regfile = "ATtiny13.dat"
$crystal = 9600000 'Interner 9,6Mhz Takt
$hwstack = 10 ' wert ??
$swstack = 10 ' wert ??
$framesize = 10 ' wert ??
'Konstanten festlegen
Const T_ALARM = 3 ' Zeit in Min.f ür aktive Sirene in ' Deutschland erlaubt: 3 Minuten
Const MINUTE = 60 ' 60x 1sec= wait1
DIM Flag as boolean
DIM cnt as byte ' Zählvariable
DIM cend as byte ' cend = Endzeit Zählschleife
'Pins konfigurieren
Config Pinb.0 = Output ' Ausgang 433MHz Sender
Config Pinb.1 = Output ' Ausgang Schaltstufe Sirene
Config PINB.2 = Output ' Ausgang RundumBlitzleuchte
Config PINB.3 = Input ' Eingang Alarmsensor
flag = False
if PINB.3
'Ports setzen
PINB.0 = 1
PINB.1 = 1
PINB.2 = 1
flag = True
cend = T_ALARM * MINUTE
for cnt = 1 to cend step 1
if cnt > 10 then PINB.0 = 0 'nach 10sec. Sender aus
wait 1
next cnt
end if
do
PINB.0 = 0 ' Funkverbindung weiter aus
PINB.1 = 0 ' Sirene aus
PINB.2 = flag ' Rundumblitzer weiter ein
loop
Ich habe es selber nicht geglaubt, aber ich bin einfach mit einer "FOR TO" Schleife und einer "IF then" Enscheidung nicht fertig geworden.
Bevor ich den Source zeige, möchte ich schnell mal die Aufgabenstellung darlegen. Sie ist eigendlich auch aus dem Code ersichtlich.
Ich benögie für ein Alarmprojekt Zeit/Alarmgeber. Da ich noch einige Attiny13 zu liegen habe, wollte ich diese nutzbringend verwenden.
Programmieren tue ich diese auf einem Pollinboard, welches über ISP10 Kabel mit dem STK500 verbunden ist. Beim STK muss ich zuviel umstöpseln/verbinden bei den 8pol. Tinys.
Natürlich bekomme ich den Chip programmiert, aber nicht ganz so wie ich gern möchte. Die Schleifenzählung wird mit IF nicht ausgewertet, die LED (gegen GND geschaltet),die ich an Stelle von Alarmgebern/Leuchten/Sender beim Test benutze, blinkeln hin und her, aber sind nicht wie gewollt ständig an, bis die Entscheidung in der Zeitschleife sie ausschaltet, bzw ausschalten soll.
Drum hier ein SOS-Ruf meiner seits was habe ich falsch gemacht. Die Fuses sind richtig gesetzt, werde noch Foto anhängen.
Ich sege schon mal Danke an eventuelle Helfer !!!
Gerhard
'Alarmgeber mit ATTINY13
$regfile = "ATtiny13.dat"
$crystal = 9600000 'Interner 9,6Mhz Takt
$hwstack = 10 ' wert ??
$swstack = 10 ' wert ??
$framesize = 10 ' wert ??
'Konstanten festlegen
Const T_ALARM = 3 ' Zeit in Min.f ür aktive Sirene in ' Deutschland erlaubt: 3 Minuten
Const MINUTE = 60 ' 60x 1sec= wait1
DIM Flag as boolean
DIM cnt as byte ' Zählvariable
DIM cend as byte ' cend = Endzeit Zählschleife
'Pins konfigurieren
Config Pinb.0 = Output ' Ausgang 433MHz Sender
Config Pinb.1 = Output ' Ausgang Schaltstufe Sirene
Config PINB.2 = Output ' Ausgang RundumBlitzleuchte
Config PINB.3 = Input ' Eingang Alarmsensor
flag = False
if PINB.3
'Ports setzen
PINB.0 = 1
PINB.1 = 1
PINB.2 = 1
flag = True
cend = T_ALARM * MINUTE
for cnt = 1 to cend step 1
if cnt > 10 then PINB.0 = 0 'nach 10sec. Sender aus
wait 1
next cnt
end if
do
PINB.0 = 0 ' Funkverbindung weiter aus
PINB.1 = 0 ' Sirene aus
PINB.2 = flag ' Rundumblitzer weiter ein
loop