Frage zum Code WC

  • Also so habe ich das inmoment


    [Blockierte Grafik: http://www.dieelektronikerseite.de/Pics/uC-Ecke/Lections/Matrixanzeigen%20-%20LEDs%20in%20Reih%20und%20Glied%20S03.GIF]


    Würde gern dazu den schieberigister 74HC595 benutzen.
    Also noch mal die daten:
    1.) 2x Matrix Anzeigen
    2.) 1x Schalter um (WC oder X ) Anzuzeigen
    3.) ATmega 8 oder auch Gern ATtiny2313


    so ich hoffe die angaben reichen bis dann und Gruss Thorsten Sch.

    3D LED-CUBE - Finde ich mega Cool.......
    PS: soory hab etwas mit der Schreib weise Soory...........

  • Dann mach doch an Port B0 bis B4 (Pin 14-18) nochmal das gleiche wie an Port C0 bis C4 (Pin 23-27) für die 2. Matrix und verdrahte die Zeilen miteinander.
    Warum ein Schieberegister wenn du es nicht brauchst.


    Die Daten die hinter "Portb =" stehen musst du noch anpassen, dazu bin ich jetzt zu faul...
    Und für den Schalter musst du nochmal ein bisschen lesen.
    Tip: IF/THEN abfrage und dann musst du noch einen Pin für den Eingang freischaufeln. (config Pin.X=Input)


    Edit: die Widerstände solltest du bei deiner Programmierung aber zwischen Matrix und Collektor vom Transistor einbauen.


    Edit2: Code debugt, jetzt sollte er auch schon sowas ähnliches wi WC anzeigen.

  • hallo Forum Nutzer und Bastler


    so bin jetzt weiter hab es so gemacht wie es ( snowfly ) mir geschrieben hat das funktioniert gut so nu will ich es per schalter schalten hab was da mal vorbereitet


    so aber leider hänge ich da örgendwo fest brauch bitte Eure Hilfe bitte könnt ihr mir helfen.......
    hier noch ein bilder von der Anzeige ( schaltung Folgt )

    ( Hier der Nachtrag von der schaltung )
    da fehlt nur noch der schalter den ich auf der schaltung inmoment noch nicht habe der aber in TXT eingefügt ist

    Der Code ( bascom )
    ATmega8 Multi _ Würfel - Matrix - Ping Pong.zip
    Bis dann und Schnelle Antwort Gruss Thorsten Sch.

  • Bei der Schaltung fehlen noch die vorwiderstände für die Leds.


    Deinen Code hab ich mir mal angeschaut, aber sorry das ist zu hoch für mich.
    Ich verstehe nicht was der überhaupt machen soll nur das der in der Do-Loop schleife
    auf nen Tastendruck wartet, kurz was macht und dann wieder wartet.

  • Hi Forum Nutzer und bastler
    nu hab ich die Anzeige soweit am laufen jetzt hab ich das proplem per schalter ( INT0 ) den text zu ändern.
    hier mal der code


    so wie oder was muss ich da eingeben hab es soweit mal was versucht
    HIER


    mach ich da was falsch wenn ja, bitte ich um euhre hilfe BITTE
    HIER die Schaltung Nochmal



    Bis dann ich hoffe auf Viele Tipps
    Gruss Thorsten Sch.

    3D LED-CUBE - Finde ich mega Cool.......
    PS: soory hab etwas mit der Schreib weise Soory...........

  • Hallo,


    Ich hätte nicht gedacht das du so harnäckig bist. Respekt.


    Versuchs mal so:


    Ich habs zwar nicht ausprobiert, aber sollte so gehen.
    Badewanne darfst du noch selbst einbauen, vor allem weil du nicht verrätst wie dein schalter angeschlossen ist



    EDIT: aber ein paar Sachen sind schon komisch....
    was z.B. soll "I = I + 0"?
    und muss am ende der sub nicht ein return?

  • Hi Thorsten


    Bin auch gerade am erlernen von Bascom, und versuche es umzusetzten in eine 8x32 LED Matrix.



    Was mir bei deinem 2ten Code auffällt ist:
    Du hast bei "Select Case I" 3Möglichkeiten(0-2), willst aber von 0-4 zählen
    If I = 5 Then I = 0 ,hier sollte es heißen "If I=3 Then I=0"


    Wenn der Taster gedrückt wird wird gezählt:
    I = I + 0 , d.H. der Wert ändert sich sowieso nicht und es kann nur "WC" aufgerufen werden, sollte eher heißen "I=I+1" oder "incr I"


    Warum wird im Hauptprogramm noch 200ms gewartet?, das bringt doch nur ein Flackern, und die letzte Spalte(Portc.4) leuchtet diese 200ms alleine nach.



    Edit: jetzt hab ich Snowfly übersehen.
    so geht's auch aber da hat er nur 2 Möglichkeiten zur Auswahl

  • Ahhh.. jetzt hab ich den Code verstanden...


    ja das Wait in der Do-Loop schleife muss raus.
    mit dem Rest hat Jony wohl auch recht, das mit dem I=I+0 ist mir ja auch schon aufgefallen :whistling:


    Aber eins hab ich noch: am End der ISR (Taster:) muss das InterruptPending Flag gelöscht weden, sonst wird der Interrupt immer 2 mal aufgerufen.
    naja durch die ungerade Anzahl an möglichkeiten fällts vielleicht auch nicht auf, nur die Richtung stimmt nicht.
    Und Warten in der ISR ist vielleicht auch nicht so toll wen nebenher multiplexing läuft. zumindest sollte man alle Leds ausschalten wähend dem Warten.

  • Und Warten in der ISR ist vielleicht auch nicht so toll wen nebenher multiplexing läuft. zumindest sollte man alle Leds ausschalten wähend dem Warten.


    Ich bin mir jetzt nicht zu 100% sicher, aber das waitms 100 ist hier für die Tastenentprellung zuständig. d.H. dass er nicht gleich 2-3mal dasselbe aufruft.
    aber 1x100ms stören eh nicht so stark, ansonsten kann er ja ein "Portc = 0" einfügen

  • Hi Snowflo und forum nutzer und bastler
    hab Hier mal die aktuelle schaltung hier rein gesteztz

    Zitat

    vor allem weil du nicht verrätst wie dein schalter angeschlossen ist

    da ist der schalter anschluss zu sehen....
    hab mal den code propiert leider tut sich da nichts oder hab ich da was falsch gemacht hab hin in bascom reingesetzt gespeichert in bascom dan complitiern lassen in HEX leider ohne erfollg
    Bitte um Rat danke


    Gruss Thorsten Sch.

    3D LED-CUBE - Finde ich mega Cool.......
    PS: soory hab etwas mit der Schreib weise Soory...........

  • Sind wohl gerade alle Glaskugeln zur Reperatur.


    Wenn du die Rechtschreibfehler nicht auch noch absichtlich einbauen würdest und uns verrätst was genau dein Problem ist dann würden dir bestimmt mehr Leute Antworten.
    Aber so drängt sich der Verdacht auf dass dich eh gleich die Jungs mit den weissen Schuhen holen.

  • Hm, das finde ich nun ein bisschen unfair, da er schon paar mal hier gesagt hat, dass er Legastheniker ist, steht auch in seiner Signatur...


    Im Prinzip ist der Code aus Post 27 (der untere) schon richtig, mit ein paar kleinen Änderungen:


    - das Waitms 200 in der Main-Loop muss raus, wurde ja schon gesagt
    - in Zeile 68 muss es heissen I=I+1 (weil bei +0 ändert sich ja nix, also kannst Du drücken wie Du willst ohne Ergebnis)
    - in Zeile 68 dann "If I = 3 Then I = 0", weil es ja nur von 0 bis 2 geht
    - und man kann natürlich am Anfang der Taster-Sub (also vor dem Warten) die LEDs ausschalten, damit keine Reihe aufblitzt


    Das alles hat Jony Walker ja schon gesagt - Also probiere mal, das umzusetzen, und poste dann ggfs. den Code neu, damit man sich den anschauen kann - der Schaltplan stimmt soweit, wenn ich das richtig sehe...


    Snowfly: bei Deiner SW geht das etwas anders, da zeigt er "WC" oder "X", je nach dem, ob der Taster gedrückt ist oder nicht - würde Sinn machen, wenn man den z.B. an das Schloss anbringt, so dass beim Zusperren automatisch "X" kommt...


    aber hier soll es ja so sein, dass die Anzeige bei jedem Tastendruck eins weiter wechselt...

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Hmm, ich wollte nicht unfair sein, sieht für mich aber wirklich nach absicht aus(meine Rechtschreibung ist ja auch nicht sonderlich)
    Falls ich unrecht habe nehme ich alles zurück und behaupte das Gegenteil.
    Und wie oben schon geschrieben: Respekt für die hartnäckigkeit.


    Das mit dem Code war dachte ich schon geklärt, ich habs nur anfangs nicht verstanden.
    Momentanes Problem ist wohl das irgendwas mit flashen nicht geht aber mit den Infos ist es echt schwer irgenwelche Tips zu geben.
    (ausser die aus dem BOfH Kalender *g*)

  • hallo bastler und forum nutzer sowie (snowflo & pesi)


    also die anzeige soll per tür kontakt geschalten werden das heist so:
    1.) wenn tür nicht zu ist also spallt offen dann soll da ( wc ) anzeigen ( frei ).....
    2.) wenn tür zu dann soll auf der beiden anzeigen ein ( X ) zu sehen sein was ( blinkt ) das kreutz...
    3.) sollte die tür länger wie beispiel ( 8-10min. ) zu sein die tür dann kommt irgendwelche andere symbole wie ( badewanne ) oder was anderes....


    das währe inmoment das wichstige für mich wenn das irgendwie hinhaut mit den code aber irgendwie haut das noch nicht so hin darum bitte ich eure hilfe SNOWFLY und PESI und andere forum nutzer & bastler


    Bitte um hilfe
    Gruss Thorsten Sch.

    3D LED-CUBE - Finde ich mega Cool.......
    PS: soory hab etwas mit der Schreib weise Soory...........

  • Wo wir wieder bei den nicht vorhandenen Glaskugeln sind.


    Was ist gerade das Problem?
    Die einzig richtige Angabe was nicht funktioniert ist, dass sich ein Code nicht in eine HEX Datei umwandeln lässt.

    Zitat

    hab mal den code propiert leider tut sich da nichts oder hab ich da was falsch gemacht hab hin in bascom reingesetzt gespeichert in bascom dan complitiern lassen in HEX leider ohne erfollg


    welcher Code ist da gemeint?
    Der von Snowfly ist wahrscheinlich nicht gemeint, denn der lässt sich bei mir ohne Probleme umwandeln :whistling:


    Ich fange mal an zu raten was mir komisch vorkommt:
    Welcher µC verwendest du?
    laut deinen geposteten Codes wurden bisher bereits 3 verschiedene verwendet:
    ein Attiny 2313
    ein Atmega8 (da wurde auch bereits ein W angezeigt)
    und jetzt ein Atmega23.