- Akku Tests und Balkonkraftwerk Speicher         
Seite 8 von 14 ErsteErste ... 678910 ... LetzteLetzte
Ergebnis 71 bis 80 von 136

Thema: Anfänger mit STK500 und Assembler

  1. #71
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    02.11.2005
    Ort
    Bayern
    Alter
    55
    Beiträge
    310
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo mare_crisium,
    nach dem der gestrige Tag im Zeichen des Gartens stand, melde ich mich erst heute...

    Habe nun den Code wieder so angepasst, dass die gewuenschte Funktion "Ein- und Ausschalten" der LED mittels der jeweiligen Taste geschieht.
    so 100%ig gefaellt es mir aber noch nicht...
    eventuell liegt es an dem was mir so noch im Hinterkopf spukt:
    >>>>
    ... eine Menueabfrage einfuegen.
    Diese soll aufgerufen werden, wenn Tasten0 und Taste7 3 sec lang gedrueckt wurde.
    --- denkbar ware hier das reservierte DatenByte (bzw. noch ein Zweites) im RAM zu nutzen - Timer ist bei 0,1 sec -> also 300 mal hoch zaehlen... ---
    --- oder kann ich das TIMER1 COMPB eventuell dafuer nutzen? ---
    --- sind die Werte beider Tasten > 300 dann Einstieg ins Menue ---
    Im Menue stehen dann die einzelnen Tasten mit unterschiedlichen Funktionen zur Verfuegung. Signalisierung fuer Menue koennte ein Blinken der LEDs sein...
    Nach Erkennen einer Taste wird das Menue verlassen und das Programm arbeitet mit der ausgewaehlten Funktion,
    die hinter der Taste steht.
    Wurde 5 sec lang, keine Eingabe gemacht, wird das Menue wieder verlassen.
    --- denkbar auch hier ein Datenbyte auf 500 zaehlen ---
    Als default soll das Programm mit SWITCH_LED nach dem Starten/Einschalten laufen bzw. zu einem spaeteren Zeitpunkt
    soll das Programm nach dem Starten/Einschalten mit der zuletzt ausgewaehlten Funktion arbeiten.
    <<<<
    Das sind erst einmal nur Ueberlegungen... eventuell loese ich die Aufgabe dann doch etwas anders.
    Auf Deine Kommentare und event. Vorschlaege bin ich wieder sehr gespannt.
    PS. "Computersteuer" - so etwas Aehnliches hat man doch endlich geschafft - in Form der GEZ-Gebuehren
    Angehängte Dateien Angehängte Dateien
    ### Silvio ###

  2. #72
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    02.11.2005
    Ort
    Bayern
    Alter
    55
    Beiträge
    310
    Hallo mare_crisium,
    fuer mein Vorhaben mit dem Menue muss SWITCH_LED aus der TAST_ANA rausgenommen werden.
    Dazu wiederum sollten die aus dem Z-Werten erkannten, betaetigten Tasten gesichert werden.
    Entweder in ein Register oder im RAM.
    Dann muss TAST_ANA noch eine Abfrage auf das Menue erhalten, damit der Code dorthin verzweigen kann.
    ABER:
    laut meinen Vorhaben gibt es nun 4 Timings
    1 - fuer das Tastenentprellen 0,1sec
    2 - fuer den MenueEinstieg 3,0sec
    3 - fuer die MenueSignalisierung(Blinken) 0,2sec
    4 - fuer den Menueausstieg 5sec
    (wobei -2- =30 mal -1-, -3- =2 mal -1- ist und -4- direkt an -3- gebunden werden kann -4- =25 mal -3-)
    - sicher hast Du da noch eine bessere Idee
    ### Silvio ###

  3. #73
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.12.2005
    Beiträge
    535
    robo_wolf,

    klar, habe ich einen Vorschlag in der Mache ! Ob er besser sein wird, weiss ich noch nicht. Dauert aber noch was...

    Ciao,

    mare_crisium

  4. #74
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    02.11.2005
    Ort
    Bayern
    Alter
    55
    Beiträge
    310
    Hallo mare_crisium,
    "Ob er besser sein wird" - da bin ich mir ziemlich sicher
    ..naja, mein Vorschlag hat natuerlich den Nachteil, wenn ich den Timer1 veraendere, aendern sich alle anderen gleich mit.
    ### Silvio ###

  5. #75
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.12.2005
    Beiträge
    535
    robo_wolf,

    hier ist noch ein Zwischenschritt auf dem Weg zur Menusteuerung. In der .pdf-Datei habe ich versucht zu erklären, warum ich den für nötig halte. So gut ich's konnte, halt .

    Morgen kommt der nächste Schritt mit einem Testprogramm für die Komponenten der Menusteuerung.

    Ciao,

    mare_crisium
    Angehängte Dateien Angehängte Dateien

  6. #76
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    02.11.2005
    Ort
    Bayern
    Alter
    55
    Beiträge
    310
    Hallo mare_crisium,
    vielen Dank fuer die tolle Ausarbeitung.
    Die IDEE eines gekapselten "IO-Treibers" kann man nun sehr schoen erkannen.
    Habe mal einen sehr einfach gehaltenen Signalfluss aufgezeichnet.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken diagramm1.png  
    ### Silvio ###

  7. #77
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    02.11.2005
    Ort
    Bayern
    Alter
    55
    Beiträge
    310
    Hallo mare_crisium,
    habe im Simulator 2 Problemchen bemerkt.
    Beim Initialisieren der Ports
    LED_PORT habe ich noch ser r16 eingefuegt, da sonst r16 noch den Wert von "ldi r16,(1<<OCIE1A) ; Timer1 Overflow aktivieren" hatte.
    Beim TASTCTL_PORT habe ich noch "out TASTCTL_PINS, r16" eingefuegt, da die Tasten gegen GND geschaltet werden.(Besonderheit beim STK500).
    -- sehr schoene Loesung --
    ...wenn ich das mal so sagen darf
    Auf Deine Menueloesung bin ich schon sehr gespannt.
    Angehängte Dateien Angehängte Dateien
    ### Silvio ###

  8. #78
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    02.11.2005
    Ort
    Bayern
    Alter
    55
    Beiträge
    310
    Fuer den weiteren Aufbau des Programm und mit Hinsicht auf Kapselung habe ich nun Nachfolgendes:

    Modul Menuesteuerung:
    Das Menue wird aufgerufen durch das gleichzeitige Druecken der Tasten T0 und T7 fuer 3sec(Menue-Abfrage).

    1 - nach dem Aufruf des "Menue-Auswahl" bleibt dies ohne weiteren Eingriff(Tastendruck)
    5sec aktiv und beendet sich nach abgelaufender Zeit mit dem Ruecksprung zu MainSchleife.

    2 - wird waehrend des Aufrufs von "Menue-Auswahl"ein Taste gedrueckt,
    so schreibt der Inhalt von R18 in R15 geschoben
    T0 := Bit0.... T7 :=Bit7 von rTastMenue und bendet "Menue-Steuerung" mit dem Ruecksprung zu Main-Schleife.

    3 - Register r18 enthaelt die gedrueckten Tasten(High-Flanken)
    -> r18 wird fuer die "Menuesteuerung" eingelesen und verarbeitet.

    4 - fuer die Ausarbeitung und Erstellung des Testprogramms wird folgendes festgelegt:
    Der Zeitgeber wird durch ein RegisterZaehler simuliert.

    Code:
     
    .equ MenueInTime  = 3   
    .equ MenueTimeOut = 5
    def r15 = rTastMenue  ; wird default mit 0x01 geladen
    def r20 = rMenueTC    ; (MenueTimer-Counter)
    F U N K T I O N:
    Menue-Abfrage:
    r18 wird in einer Schleife mit 0x81 (0b1000 0001) verglichen.
    bei Uebereinstimmung incrementiert rMenueTC.

    rMenueTC wird mit MenueInTime verglichen.
    bei Uebereinstimmung wird das Untermenue "Menue-Auswahl" aufgerufen
    und rMenueTC wird mit MenueTimeOut geladen.

    Menue-Auswahl:
    Menue-Auswahl durchlaeuft eine Schleife, in der rMenueTC decrementiert.
    Bei "tst rMenueTC" wird rTastMenue mit 0x01 geldaen und die Funktion mit dem Ruecksprung in Main beendet.
    oder die naechste erkannte Taste in R18 wird in R15 verschoben und das Menue-Auswahl damit beendet.
    Innerhalb von Menue-Auswahl sollen die LEDs zur Signalisierung blinken.
    Dazu wird rTastMenue geloescht := 0x00.

    rTastMenue wird mit der naechsten in der Main-Schleife befindlichen Prozedur "SWITCH_OUT_PORT" bislang "SWITCH_LED" verarbeitet.
    rTastMenue := 0x00 liefert das Blinken aller LEDs
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken menuesteuerung_357.png  
    ### Silvio ###

  9. #79
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.12.2005
    Beiträge
    535
    robo_wolf,

    Du weisst ja, ich bin momentan zeitlich ziemlich eingeschränkt. Deshalb zeigen die Dateien im Anhang noch einen nicht komplett ausgetesten Zwischenstand. - Interessant, wie sich unsere Ansätze unterscheiden . Das Ausknobeln hat richtig Spass gemacht und war eine gute Ablenkung.

    Ciao,

    mare_crisium

    EDIT_1: Verbesserte Versionen der drei Anhänge hochgeladen
    EDIT_2: Fehler (siehe Post von robo_wolf 02.04.2010) in _V03 korrigiert. Neue Version "TestPrgrm_04i_V03.asm"
    EDIT_3: Neue Version _V09 mit Korrektur/Ergän
    zung des Übergangskriteriums von A.0 nach A.1.
    EDIT_4: Fehler (siehe Post von robo_wolf 10.04.2010) in "MENU8STRG_V02.asm" korrigiert, korrigierte Version hochgeladen
    Angehängte Dateien Angehängte Dateien

  10. #80
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.12.2005
    Beiträge
    535
    robo_wolf,

    bitte, lade die korrigierten Versionen herunter, die jetzt an meinem Posting von heute morgen angefügt sind. Bei den alten Versionen war ich doch zu sehr in Eile. Mit den neuen klappt's .

    Ciao,

    mare_crisium

Seite 8 von 14 ErsteErste ... 678910 ... LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress