- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 7 von 7

Thema: UART, zeitlicher Ablauf Subprogramme

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied
    Registriert seit
    27.10.2008
    Beiträge
    50
    Ersteinmal Danke für die Antwort

    Soorry wegen der nicht compilierfähigkeit.

    Da der Code bereits über 4k groß ist, wollte ich ihn nicht komplett einstellen.

    Kurz vorab.
    Es gibt 4 Verschiedene Nachrichten unterschieden werden sie am 2. Zeichen der Nachricht. Für jeden Nachrichtentyp hatte ich eine eigene Subroutine vorgesehen:
    die Typen sind Lebenszeichen ( L ) Platzierung ( P) Initialisierung (I) und Bestround (B). Dafür die Variabelen Platzt und Lebensz

    Const Lebensz = 5 '???
    Const Platzt = 6 '???

    Müsste es dann nicht so heißen:
    Const Lebensz = 76 ' Ascii Nummer für L
    Const Platzt = 80 'Ascii Nummer für P

    In jedem der Telegramme sind eine Reihe an Informationen enthalten.

    Hier am Beispiel L:
    Telegrammtyp, Aktuelle Uhrzeit; Restzeit, Lampe 1 an oder aus, Lampe 2 an oder aus,Lampe 3 an oder aus,Lampe 4 an oder aus,Lampe 5 an oder aus.

    Die variabelen Fangen deshalb bei mir auch so an:
    LA = Lampe
    UZ = Uhrzeit
    RZ = restzeit

    wen ich das richtig verstehe, hast du die String-Werte aus dem String durch deren ASCII Code nummer ersetzt.

    Das ist nicht ganz richtig, der Fehler liegt aber bei mir
    La2 Alias Uz_std1
    La3 Alias Uz_min10
    La4 Alias Uz_min1
    La5 Alias Uz_sek10
    Die Lampen haben keine Gemeinsamkeit mit den Uhrzeiten
    Aber da ich noch nicht ganz fertig bin und Teile des Protokolls noch in der Abstimmung sind, waren noch nicht alle Platzangaben in den Telegrammen richtig gesetzt.

    Zeit_strobe_port Alias Portb '???
    Zeit_strobe_pin Alias 0 '???
    Data_channel Alias Portb.1
    Clock_channel Alias Portb.2

    Insgesamt habe ich 13 Blöcke mit sieben Segement Anzeigen
    Alle 13 Blöcken hängen am gleichen Data out port und am gleichen Clock Port, der Strobe Port wird je Block gesetzt ( Uhrzeit und Restzeit sind ein block -> Zeit_Strobe)

    Dim Seg_array(10) As Byte '???
    Das ist das Array in dem steht welche 8 Binärzeichen für die Siebensegmentanzeige an die Schiebregister gesendet werden sollen.
    Quasi die Übersetzungsliste Dezimal-Zahl zu Siebensegmentanzeige. Da keine Nachgeschaltete Logik dahinter ist muss ich das hier im Programm machen.
    Glaube ich zumindest.

    Gruß Martin
    Ich habe hier gerade nicht den kompletten Code zur hand. Ich baue das ein und schreibe das nochmal hier.

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    54
    Beiträge
    765
    Klingt so, als ob Du meine Vorgehensweise erkannt hast.

    Wenn möglich, arbeite ich mit Overlays, was hier gut geht. Spart umkopiererei. "Strings" der Länge 1 werte ich normal als byte aus. Spart in dem Beispiel hier die ganzen MIDs. Zumal das Vergleichen von Strings mehr Zeit benötigt.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

Ähnliche Themen

  1. Programm-Ablauf wird nicht eingehalten.
    Von RobbyMartin im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 11.06.2011, 15:39
  2. Paralleler ablauf von Funktionen im ATMega 16 / 32?
    Von Henry im Forum C - Programmierung (GCC u.a.)
    Antworten: 10
    Letzter Beitrag: 16.07.2009, 16:52
  3. Ablauf des Programms sehr zögerlich...
    Von Black_Arrow im Forum PIC Controller
    Antworten: 4
    Letzter Beitrag: 29.01.2008, 06:34
  4. Ablauf von Programmen generell
    Von The Man im Forum Assembler-Programmierung
    Antworten: 2
    Letzter Beitrag: 18.08.2007, 14:21
  5. Ablauf der IRSs mit SIGNAL
    Von weijr im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 03.12.2006, 21:47

Berechtigungen

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

Solar Speicher und Akkus Tests