- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 9 von 9

Thema: 4 x Siebensegmentanzeigen + Wire1 Tempsensoren geht nicht gleichzeitig

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Hallo Mikegen,

    Dein geposteter Code ist praktisch unlesbar. Zum Posten von Code gibt es die Codetags [ CODE] hier das Programm [ /CODE] aber ohne die Leerzeichen nach der öffnenden eckigen Klammer. Sieht dann so aus:
    Code:
     hier das Programm
    Wenn Du beim Antwort schreiben unten rechts auf den "Erweitert" button klickst, geht das auch per Mausklick auf das # Zeichen.

    Das was ich aber schon gesehen habe ist diese Zeile.
    "If Stelle < 5 Then Incr Stelle Else Stelle = 1 'Index weiterschalten zur nächsten Stelle"
    Es muß heißen
    "If Stelle < 4 Then Incr Stelle Else Stelle = 1 'Index weiterschalten zur nächsten Stelle"

    Das hatte ich hier in der geposteten Datei auch schon berichtigt. Keine Ahnung ob das Deine Probleme behebt. recovery hat den Fehler auch übernommen und hat ihn anscheinend nicht gestört. Die 5 ist aber definitiv falsch!

    Gruß
    Searcher

    - - - Aktualisiert - - -

    Dann gibt es noch diese Zeilen bei Dir:

    Code:
    Ddra = &B00001111 'Tempsensoren A6, Reedkontakt A5, Spannung A4 , A0-A3 Transistor für Segmente Eingang = 0 Ausgang = 1
    
    Config 1WIRE = Porta.6
    
    Reed Alias PinA.5  
    Set PortA.5        
    reed = 1
    PortA wird außer für 7 Segment also noch anders genutzt.

    Beim Multiplexen hast Du folgendes aber nicht angepaßt:
    "Porta = Porta And &B00000000 'Alle 4 Stellen abschalten, andere Portpins nicht verändern '&B11110000"

    Versuch es mal so:
    "Porta = Porta And &B1111_0000 'Alle 4 Stellen abschalten, andere Portpins nicht verändern '&B11110000"
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  2. #2
    Danke für die antwort

    Also wenn ich das jetzt richtig verstanden habe darf der Port wo multiplext wird von nix anderem belegt sein.

    Gut das dazu noch die Fehler im Programm sind das hab ich dann scheinbar komplett übersehen wenn man sich das 10mal anschaut sieht man nix mehr.
    Werde das morgen dann mal versuchen soweit es geht so anzupassen das dann auf dem Port wo multiplext wird nix anderes dran ist.

    Das mit der
    "If Stelle < 5 Then Incr Stelle Else Stelle = 1 'Index weiterschalten zur nächsten Stelle"
    Es muß heißen
    "If Stelle < 4 Then Incr Stelle Else Stelle = 1 'Index weiterschalten zur nächsten Stelle"

    stört so erstmal nicht das hatte ich dann auch schon gefunden muss aber eben definitiv 4 sein bei 4 Stellen oder man macht ein <= 5 draus aber das ist ja jetzt auch erstmal egal.

    Wenn es nicht gehen sollte dann lasse ich das mit der Temperaturen eben weg das soll mich nicht stören wenn ich keine habe.
    Ebenso die Board / Batterie Spannung ist nur ein netter Nebeneffekt gebraucht wird es eigentlich überhaupt nicht.
    Das was ich brauche und was mir wichtig ist ist eben die Uhr und die Geschwindigkeit und das auf den Segmenten weil die schön klein sind.

    Später wenn es mal fertig ist soll das Display auch weg dann soll alles im Wechsel auf den Segmenten angezeigt werden.


  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Zitat Zitat von Maikgen Beitrag anzeigen
    Also wenn ich das jetzt richtig verstanden habe darf der Port wo multiplext wird von nix anderem belegt sein.
    Doch, da darf schon noch mehr drauf sein.

    Diese Zeile:
    Code:
    Porta = Porta And &B1111_0000 'Alle 4 Stellen abschalten, andere Portpins nicht verändern '&B11110000
    schaltet durch die AND Verknüpfung alle Portpins, die in der Maske &B1111_0000 "0" sind ab; setzt sie auf "0" und läßt die anderen unverändert. Da kann also noch was drauf sein.

    Du hast als Maske mit &B00000000 aber alle Portpins im PORTA auf "0" gesetzt. Auch die Eingangsportpins was sich durch Abschalten des Pullups (wie hier der hier gesetzte: "Set PortA.5") wahrscheinlich irgendwie bemerkbar macht? Werden die roten Nuller in der Maske zu Einsern, bleiben im PORTA nach der Zeile "Einser" "Einser" und "Nuller" "Nuller"

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    $regfile = "m32def.dat"
    $crystal = 16000000
    $hwstack = 32
    $swstack = 8
    $framesize = 24
    Ich würde auch noch mindestens HWSTACK um mindestens 2 auf mindestens 34 erhöhen Siehe auch
    http://halvar.at/elektronik/kleiner_...swstack_frame/
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  5. #5
    danke habe es hinbekommen war echt nur ein Timing Problem.
    mache es jetzt einfach mit dem Timer der bei einem gewissen Punkt kurz die Tempmessung anstöst und in der Zeit ( ca. ne halbe Sekunde ) flackern kurz die Anzeigen aber das ist kaum wahrzunehmen.
    Man muss dann genau in dem Moment auch noch hinschauen. ich werde die Zeit zwischen den Messung dann mit Sicherheit auch noch verlängen weil auf dem Moped braucht man es nicht das er alle 30 Sekunden die Temp misst da reichen 5 Minuten ( 300 Sekunden ) aus denke ich.

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.190
    ...Tempmessung anstöst und in der Zeit ( ca. ne halbe Sekunde ) flackern kurz...
    Da ist sicher noch eine Optimierungsmöglichkeit da.
    Du musst ja nicht während der ganzen Temperaturabarbeitung irgendwas blocken.
    Es reicht ja wenn man das so lange macht, so lange Komunikation auf dem 1wire Bus ist.

    5 min Messdauer für z.B. die Motor Kopftemperatur wär mir auch zu lang.
    Für eine Umgebungsmessung reichte es aber natürlich allemal.

Ähnliche Themen

  1. Code läuft nicht feherfrei, bitte um Hilfe! Input Capture und UART nicht gleichzeitig
    Von Accenter im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 14
    Letzter Beitrag: 04.06.2013, 20:00
  2. Antworten: 17
    Letzter Beitrag: 28.02.2010, 13:29
  3. Geht Servo UND Motor gleichzeitig?
    Von raptor_79 im Forum AVR Hardwarethemen
    Antworten: 0
    Letzter Beitrag: 01.11.2006, 01:36
  4. Alphanumerische Siebensegmentanzeigen
    Von Elektronik303 im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 31.07.2005, 18:46
  5. Mehrere Programme gleichzeitig laufen lassen geht nicht.
    Von mesli-andres im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 23
    Letzter Beitrag: 11.06.2005, 21:29

Berechtigungen

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

12V Akku bauen