mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Erste geh versuche in Bascom


Autor: maxe (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sven P. (haku) Benutzerseite
Datum:

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

Autor: maxe (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Mike (Gast)
Datum:

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

Autor: Göck (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: maxe (Gast)
Datum:

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

Autor: Gast (Gast)
Datum:

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

Gruß

Rolf

Autor: maxe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok wie kann ich das dann lösen?

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: maxe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke, ich werde es mit einem Timer versuchen.

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.