-         

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 26

Thema: ... jeder fängt irgendwann mal mit BASCOM an ...

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    05.09.2008
    Ort
    Kalletal
    Alter
    55
    Beiträge
    16

    ... jeder fängt irgendwann mal mit BASCOM an ...

    Anzeige

    ... und nun auch ich ...

    Allerdings gestaltet sich die Sache schwieriger als erwartet, da es trotz intensiver Suche kein in meinen Augen brauchbares Tutorial gibt... Oder hat irgendwer Empfehlungen, auch in Buchform?

    Gleich eine Frage zu Bascom (aktuelle Version) vorweg:
    Kann es wohl sein, das der komische Hardware-Simulator (das Dingen mit den LED's und dem LCD) nicht ordentlich funktioniert? Das betrifft auch das Fenster Variables. Beide aktualisieren sich bei einer Simulation nicht automatisch. Erst wenn ich mit der Maus z.B. auf eine LED eines nicht benutzen Port's klicke, wird es aktualisiert, ansonsten nicht.
    Liegt das an meinem Rechner/OS (XP Pro x64, AMD Phenom 9750 Quad)? Wenn nicht, ist der Simulator doch vollkommen witzlos

    Nun zum Thema:

    Zur Geschichte ist zu sagen, das ich mir dachte, das ein Basic- Dialekt gerade für ganz einfache Steuerungsaufgaben in Verbindung mit den kleinen Tiny's wesentlich einfacher und schneller zu verwenden ist als ASM oder C.
    In diesem Sinne habe ich mir auch ein Projekt als Übung ausgedacht, welches hier als rein analoge Lösung existiert (NE556, OP's, ...). Dabei handelt es sich um eine "intelligente" Außenlichtsteuerung mit IR- Bewegungsmelder, 2 Taster im Flur und Helligkeitssensor

    Diese Funktionalität möchte ich als Übung unter Bascom so oder so ähnlich incl. einiger Erweiterungen (über die Taster programmierbar, 1wire, ...) mit einem Tiny84 nachbauen.

    Im Grunde habe ich schon das Grundgerüst komplett. Allerdings stehe ich noch vor ein paar Schwierigkeiten, bei denen mir ggf. hier wer auf den richtigen Weg helfen könnte?!?

    Das erste betrifft die BIT- Manipulation innerhalb eines mit DIM gesetzten Bytes. Das Setzen eines einzelnen BIT's ist ja kein Thema (BITS(x.y....), =&h... oder =&b...), aber das gezielte Löschen klappt irgendwie nicht.

    Das zweite betrifft die Verwendung von DEBOUNCE. Im Prinzip ist mir die Verwendung klar, allerdings kommt dabei, zumindest über den Simulator, immer was anderes heraus als erwartet. Ich hatte DEBOUNCE für jeden der drei Eingänge auf L-Pegel mit GOSUB gesetzt und bin von allen drei Abfragen zur gleichen SUB gesprungen, um dort die letztendliche Auswertung vorzunehmen. Das klappt aber irgendwie nicht ...

    Ein letztes (bis jetzt) ist die Auswertung der PCINTx (PinChangeInterrupts). Kann es sein, das Bascom das garnienicht unterstützt?

    Das sind erstmal meine derzeitigen Probleme. Ich bastle natürlich immer am Quellcode rum, so das eine Veröffentlichung an dieser Stelle m.E. keinen Sinn macht. Mache ich aber gerne, wenn es wer möchte. Das betrifft auch die Beschreibung des finalen Funktionsumfanges ...
    ... baba ...

    Micha

  2. #2
    Erfahrener Benutzer Roboter-Spezialist Avatar von MiniMax
    Registriert seit
    26.07.2007
    Ort
    Bremen
    Beiträge
    241
    Hi Micha,
    Na dann erstmal ein herzliches Willkommen in der Bascom Basic Programmierung =D> =D>
    Als Turitual kann ich dir nur die Rn Wissen's Artikel (http://www.rn-wissen.de/index.php/Ka...ellcode_Bascom) Empfehlen ! Ansonsten kann ich dir leider nicht weiter Helfen. Viel Glück mit deiner Steuerung \/ \/
    Gruß
    MiniMax

  3. #3
    Schaue einmal auf www.DieElektronikerseite.de. Dort sind mehrere Lehrgänge in Bascom.

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    05.09.2008
    Ort
    Kalletal
    Alter
    55
    Beiträge
    16
    @MiniMax: Danke, da schau ich doch schon immer Hat mir auch schon an manchen Stellen weiter geholfen.
    Was ich bis jetzt gefunden habe, ist eine DEBOUNCE mit ASM und Softwaretimer. Da blicke ich noch nicht dran lang.

    @THRoth: Danke für den Tipp. Allerdings bin ich über den Status schon hinaus. Da werden eher Grundlagen vermittelt und so spezielle Fragen, wie z.B. PCINTx, werden in Verbindung mit Bascom nicht behandelt.
    ... baba ...

    Micha

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112

    Re: ... jeder fängt irgendwann mal mit BASCOM an ...

    Zitat Zitat von M*I*B
    Kann es wohl sein, das der komische Hardware-Simulator (das Dingen mit den LED's und dem LCD) nicht ordentlich funktioniert? Das betrifft auch das Fenster Variables. Beide aktualisieren sich bei einer Simulation nicht automatisch. Erst wenn ich mit der Maus z.B. auf eine LED eines nicht benutzen Port's klicke, wird es aktualisiert, ansonsten nicht.
    Liegt das an meinem Rechner/OS (XP Pro x64, AMD Phenom 9750 Quad)? Wenn nicht, ist der Simulator doch vollkommen witzlos
    Wahrscheinlich aus Geschwindigkeitsgründen werden nicht alle Darstellungen des Simulator während der Ausführung des Programms aktualisiert. Dies wird aber in vielen anderen Simulatoren auch nicht gemacht.
    Wenn du die aktuellen Werte sehen möchtest, kannst du die Ausführung jederzeit anhalten. Entweder durch die Knöpfe oben links oder durch Haltepunkte (Breakpoints), die du auf alle Zeilen setzen kannst, die vorne einen gelben Punkt haben.

    Zitat Zitat von M*I*B
    Diese Funktionalität möchte ich als Übung unter Bascom so oder so ähnlich incl. einiger Erweiterungen (über die Taster programmierbar, 1wire, ...) mit einem Tiny84 nachbauen.
    halte ich für eine gute Übung und auch machbar. Ich schätze auch, dass der tiny84 dazu locker in der Lage sein sollte.

    Zitat Zitat von M*I*B
    Das erste betrifft die BIT- Manipulation innerhalb eines mit DIM gesetzten Bytes. Das Setzen eines einzelnen BIT's ist ja kein Thema (BITS(x.y....), =&h... oder =&b...), aber das gezielte Löschen klappt irgendwie nicht.
    Du kannst jedes Bit der ganzzahligen Variablentypen separat auf 0 oder 1 setzen. Ebenso die einzelnen Pins eines Ports.
    My_Byte.0 = 0 setzt dir das Bit 0 von My_Byte auf 0, alle anderen bleiben unverändert
    My_Long.30 = 1 macht das entsprechende bei der Long Variable.
    PortA.3 = 1 setzt den Pin3 von PortA auf High-Pegel, bzw. schaltet den PullUp ein.
    Das geht auch mit einem Alias
    Ausgang alias PortA
    Ausgang.3 = 1 hätte den gleichen Effekt.

    Zitat Zitat von M*I*B
    Das zweite betrifft die Verwendung von DEBOUNCE. Im Prinzip ist mir die Verwendung klar, allerdings kommt dabei, zumindest über den Simulator, immer was anderes heraus als erwartet. Ich hatte DEBOUNCE für jeden der drei Eingänge auf L-Pegel mit GOSUB gesetzt und bin von allen drei Abfragen zur gleichen SUB gesprungen, um dort die letztendliche Auswertung vorzunehmen. Das klappt aber irgendwie nicht ...
    Zeig mal den Code dazu. Bedenke auch, dass der Pin immer noch mal auf High gehen muss, ansonsten gibt es keine Ausführung der Sub. Die Zeit Überwachung von Debounce funktioniert im Simulator glaube ich nicht.

    Zitat Zitat von M*I*B
    Ein letztes (bis jetzt) ist die Auswertung der PCINTx (PinChangeInterrupts). Kann es sein, das Bascom das garnienicht unterstützt?
    Wenn du dir das Datenblatt des Tiny84 anschaust, dann wirst du feststellen, dass es keinen PCINTx direkt gibt. Anders als der externe Interrupt INT0 werden die PCINT Eingänge gemeinsam abgefragt.
    Die PCINTs von Porta sind unter PCINT0 zusammengefasst, die von PortB unter PCINT1.
    Wenn du den Pin 3 von PortA benutzen willst, musst die diesen aktivieren. Dies geht über PCMSK0.3 = 1 oder auch PCMSK.PCINT3 = 1
    Den Sprung in die ISR legst du so fest:
    On PCINT0 PCINT0_ISR
    wobei der Name PCINT0_ISR willkürlich gesetzt werden kann.
    Wenn du mehrere aktive Pins hast, dann musst du nun in der ISR rausfinden, welcher gesetzt ist.

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    05.09.2008
    Ort
    Kalletal
    Alter
    55
    Beiträge
    16
    Hey for_ro,

    das nenne ich mal eine ausführliche Antwort! Vielen Dank!!! Das bringt mich fett voran =D>

    BIT- Manipulation:
    ... au menno! Ist vermutlich viel zu trivial, als das ich da selber hätte drauf kommen können Ich habe immer nach einem bestimmten Befehl gesucht like BITS() oder so ...

    PCINTx:
    Ok, das habe ich wohl beflissentlich mehrfach übersehen. Jetzt wird mir auch alles klar (glaub ich). Das würde dann bedeuten, das ich z.b. PCINT0 auswerte und springe, um dort z.B. mit DEBOUNCE abfrage, welcher PIN es denn nun war, oder?

    DEBOUNCE:
    Die Nummer habe ich derzeit nicht mehr im Code, da es irgendwie nicht klappen wollte. Wenn ich mich recht erinnere, hatte ich das in etwa so:

    Code:
    Config Porta.1 = Input : Irs Alias Porta.1
    Config Porta.2 = Input : Ta1 Alias Porta.2
    Config Porta.3 = Input : Ta2 Alias Porta.3
    
    do
    	debounce irs,0,sub_stat,sub
    	debounce ta1,0,sub_stat,sub
    	debounce ta2,0,sub_stat,sub
    loop
    
    sub_stat:
    	if irs = 0 then
    		blabla
    	end if
    	...
    return
    In der sub_stat wollte ich halt auswerten, welcher Eingang denn überhaupt betroffen ist, an Stelle einer eigenen SUB für jeden Eingang.

    Emulator:
    Das ist schade. Ich habe Bascom vorhin zum Spaß mal auf einem P300 mit WIN2k installiert. Das läuft da annähernd eben so schnell wie hier auf meiner großen Kiste, wenn ich den LCD-Emu nicht öffne. Im Umkehrschluss stellt sich mir dann natürlich die Frage, warum die Macher von Bascom da offensichtlich eine Bremse eingebaut haben resp. auf Echtzeitanzeigen bei Verwendung von echt schnellen Maschinen verzichten. Aber nun gut; gehört ja nicht hier her...
    ... baba ...

    Micha

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.08.2007
    Ort
    Oberhofen im Inntal (Tirol)
    Alter
    43
    Beiträge
    377

    Re: ... jeder fängt irgendwann mal mit BASCOM an ...

    Zitat Zitat von M*I*B
    kein in meinen Augen brauchbares Tutorial
    Hallo!

    Ob brauchbar oder nicht, das müssen andere entscheiden.

    http://halvar.at/elektronik/kleiner_bascom_avr_kurs/

    mfg
    Gerold
    :-)

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    05.09.2008
    Ort
    Kalletal
    Alter
    55
    Beiträge
    16
    ... jau, schaut gut aus; ist gespeichert. Danke dir!
    ... baba ...

    Micha

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Die Aliase musst du auf PinA.1 usw. setzen, wenn du Werte einlesen willst.
    Zum Simulator: Ich glaube nicht, dass irgendein PC im Moment in der Lage
    ist, die schnellen Zustandänderungen eines µC in Echtzeit zu zeigen. Noch weniger sind Menschen dazu in der Lage zu erkennen, was da vor sich geht.
    Die Hauptbremse ist übrigens die Ausgabe in dem Programmfenster, wo der Befehlspointer hin und her springt. Wenn du das Fenster minimierst, geht da richtig die Post ab.
    Die echte HW Simulation hört bei größeren Sachen sowieso recht schnell auf. Komplexe Signale wie 1-wire ode so kannst du gar nicht simulieren.
    Ich sehe den Hauptsinn darin, bestimmte Passagen eines Programms zu debuggen und dafür habe ich so ziemlich alles an Bord, was ich benötige.

  10. #10
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.05.2007
    Beiträge
    329
    Hallo Micha,

    hiermit habe ich angefangen:

    www.rowalt.de

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •