Forum: Mikrocontroller und Digitale Elektronik Erste geh versuche in Bascom


von maxe (Gast)


Lesenswert?

Hallo, ich hab mein erstes Programm in Bascom geschrieben.
http://pastebin.com/f421ea991
Und wollte mal fragen ob das so funktioniert wie ich mir das gemacht 
habe.
Das Programm sollte eine Rotlichtlampe mit einem Triac nach temperatur 
dimmen.

Grüße maxe

von Sven P. (Gast)


Lesenswert?

Ich kenn mich mit dem Bascom-Zeugs nicht aus, aber: 'Wait' im Interrupt 
ist meistens immer falsch.

von maxe (Gast)


Lesenswert?

der Interrupt wird im 0 durchgang ausgelöst und dann soll er warten und 
dann den triac zünden abhängig von der Temperatur.

von Mike (Gast)


Lesenswert?

Komm zu uns " da werden sie geholfen"
http://bascom-forum.de/

von Göck (Gast)


Lesenswert?

Das sieht doch aber an sich ganz gut aus. Das mit dem Interrupt und Wait 
stimmt schon, ist aber in diesem Programm - denke ich - nicht weiter 
kritisch.

Grüße

von maxe (Gast)


Lesenswert?

Was ich noch fragen wollte, reichen 100 us für einen Optokoppler den 
triac zu zünden?

von Gast (Gast)


Lesenswert?

Du kannst in Bascom bei Waitus keine Variable angeben, sondern nur feste 
Werte (kann auch eine vorher vereinbarte Konstante sein).

Gruß

Rolf

von maxe (Gast)


Lesenswert?

ok wie kann ich das dann lösen?

von MWS (Gast)


Lesenswert?

Einfache Lösung:

Aus Schleifen selbst 'ne Verzögerung bauen, bei 2MHz schafft der Tiny 2 
Takte/µS, ein Maschinenbefehl braucht 1,2 oder 3 Takte, eine for/next 
dann xxx Takte. Im Simulator 2 Breakpoints setzen und aus der Differenz 
der Prozessortakte (wird im Sim. unten mit "Cycles" angezeigt) die 
tatsächliche Verzögerung errechnen. Tuning der Verz. geht z.B. mit 
Einfügen von:

$asm
NOP
NOP
...
$end asm

1 NOP verbraucht einen Prozessortakt

Wird aus dieser selbstgestrickten Verzögerung eine Subroutine gemacht, 
so kann sich je nach Aufrufart eine zusätzliche Verzögerung ergeben, 
wenn Register gesichert werden.

Fortgeschrittene Lösung:

Timer/Counter verwenden, Start auf Int0 synchronisieren, 
Verzögerungswerte in's Compare-Register. Evtl. könnte eine der PWM Modes 
dazu "überredet" werden, gleich das Schaltsignal zu liefern.

von maxe (Gast)


Lesenswert?

danke, ich werde es mit einem Timer versuchen.

von MWS (Gast)


Lesenswert?

Maxe,

wenn Du gerade anfängst, kann die Timer/Counter Lösung etwas tricky sein 
(sprich frustbehaftet), und ein Oszilloskop würde dabei sehr helfen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.