Forum: Mikrocontroller und Digitale Elektronik Bascom: Unterprogramm nur einmal anspringen


von Thommi (Gast)


Lesenswert?

Hallo Freunde elektronischer Systeme.

ich steh grad voll auf dem Schlauch und bitte um eure Mithilfe.
Ich möchte in Bascom folgendes Lösen:

Bei einer Fräsensteuerung soll der Einschaltstrom der Trafos über einen 
Vorladewiderstand, der nach ca. 0.5 sek gebrückt wird (K2 an PortA2), in 
Grenzen gehalten werden. Dem Mikroprozessor (Tiny2313) teile ich über 
ein Hilfsschütz (K1 an PINA1) mit, das 230 V anliegen. z.B. beim 
Einschalten der Steuerung, nach einem Notaus oder nach Stromausfall oder 
nach einem Auslösen der Sicherung.

Ablauf wie folgt:

230 V ein
K1 ein (PINA2=0)
0,5s Pause
K2 ein (PortA2=1)

dies soll immer nur dann geschehen wenn K1 abgefallen war (PINA2=1) z.B. 
nach einem Notaus.

Ich hatte mir das so gedacht:

Im Hauptprogramm springe ich wenn PINA2=0 in ein Unterprogramm in dem 
die Verzögerung und das Einschalten von K2 erledigt wird. Danach wieder 
zurück ins Hauptprogramm wo andere Sachen erledigt werden. Problem ist 
nur, das ja PINA2 im Normalfall immer noch 0 ist und ich sozusagen 
jedesmal ins Unterprogramm springe.
Wie kann ich machen das ich nur einmal ins Unterprogramm springe wenn 
PINA2=0 ist und nachher nicht mehr, und erst wieder ins Unterprogramm 
wenn PINA2 kurzzeitig =1 war ?

Ich hoffe ihr könnt erahnen was ich machen möchte !

Danke und Gruß

Thommi

von Bass-Commer (Gast)


Lesenswert?

So was geht in Bascom nicht :D
nee, im Ernst, setz ein Flag im Unterprogramm und verzweige in der 
Hauptschleife nur, wenn das Flag nicht gesetzt ist.

von Thommi (Gast)


Lesenswert?

Das ging schnell. Spitze
Hm. Aber dann springt er mir doch niemehr ins Unterprogramm. Auch nicht 
wenn PinA1 high wird.

von Weingut P. (weinbauer)


Lesenswert?

doch , in der mainloop machst Du

Do

if pina.2=1 then notausflag=1
if pina.2=0 and notausflag=1 then gosub unterprogramm

Loop
end

unterprogramm:

notausflag=0
waitms 500
porta.2=1

return

aber eingang und ausgang zugleich ? portA.2?

von Thommi (Gast)


Lesenswert?

Danke für die Ideen.
Ich werd heute Abend mal probieren.
Ich hab für Eingang und Ausgang zwei getrennte Pins. War ein 
Schreibfehler von mir. Sorry
Ich bezweifel aber das Bascom mit diesem "and" zurechtkommt. Hatte da 
gestern schon mal probiert und hat nicht so richtig funktioniert.Hab 
bischen im Internet gesucht und da meinte jemand das es noch einen 
Unterschied zwischen "and" und "And" gibt. Konnte ich nicht testen. 
Bascom macht bei mir aus einem kleinen "and" immer ein großes "And".

von Otto (Gast)


Lesenswert?

Normalerweise wird die Spule des Überbrückungsschützes über einen 
Schliesser (Hilfskontakt) des Hauptschützes angesteuert. Die hierdurch 
entstehende Verzögerungszeit von ca. 20ms reicht in der Praxis oft aus.

Gruß Otto

von Thommi (Gast)


Lesenswert?

Hallo Otto, ja so kann man es auch machen. Bei mir ist es so gelöst und 
die Hardware ist fertig. Fehlt nur noch die Software.

von mue-c (Gast)


Lesenswert?

Thommi schrieb:
> Hab bischen im Internet gesucht und da meinte jemand das es noch einen 
Unterschied zwischen "and" und "And" gibt.

Nein, da gibt es keinen Unterschied.

von Thommi (Gast)


Lesenswert?

Danke an alle !
Funktioniert jetzt !

LG
Thommi

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.