Hallo, ich versuche einen 4094 mit einem PIC 16F628 anzusteuern! beschaltung habe ich mit in das asm-file geschrieben! Ich bin noch anfänger und würde gern mal wissen wo mein fehler liegt... wäre supernett wenn mir jemand helfen könnte!, und mir eventuell sagt wo mein fehler in der programiereung liegt! am 4094 leuchten die led's undefinierbar mfg sunny
Mir ist im Code ne Kleinigkeit aufgefallen, das könnte es schon sein. Wie schnell ist denn der PIC? CLK wird gesetzt, und mit dem nächsten Befehl schon wieder gelöscht. Das könnte zu schnell sein, da müßte unter Umständen ein nop-Befehl zur Verzögerung dazwischen. Man muß mal ins Datenblatt des 4094 schauen, wie die Schaltzeiten definiert sind, ich habs gerade nicht zur Verfügung.
aber sonst müsste es klappen? der prozessor läuft momentan auf 4mhz intern. Im Datenblatt habe ich nicht viel über die zeiten gefunden. ich habe jetzt nochmal den code verändert angehängt. meintest du es in etwa so?
hier der code ganz vergssen^^ Edit: ich habs ebend mal durch den simulator laufen lassen und gesehen das auf Data garkeine implse kommen.... woran könnte das denn jetzt liegen?
Marcel Klug schrieb: >ich habs ebend mal durch den simulator laufen lassen und >gesehen das auf Data garkeine implse kommen.... Und was machen die anderen Signale?
1. cdsend scheint nicht initialisiert zu sein 2. wo kommt denn Ini_opt her? 3. auch RB1 ist als Output definiert (im Widerspruch zum Kommentar ...) Grüße Claus
die anderen signale laufen Den kommentar habe ich schon bei mir geändert! keine ahnug wie ich daruf kam.... okay und wie bekomme ich es jetzt hin das ich mit zb movlw B'00000001' den ersten ausgang des 4094 auf high schalte? ich stehe da n bissl aufm schlauch. aber schonmal danke für die reichlich vielen antworten! hier wird echt schnell geholfen!
Marcel Klug schrieb: >okay und wie bekomme ich es jetzt hin das ich mit zb >movlw B'00000001' den ersten ausgang des 4094 auf high >schalte? Da müßtest du wohl das W-Register mal in die Variable cdsend kopieren.
hmm und wie bekomme ich das genau hin? entschuldigung das ich da so blöd frage
So sollte es klappen: main movlw B'00000001' ; lade W mit Konstante banksel ..... ; Bank, in der cdsend liegt movwf cdsend ; kopiere W in Variable cdsend banksel ..... ; ursprüngliche Bank, wenn nötig call cd4094_send ; Funktionsaufruf goto main ; und wieder von vorne
alles klar das war das was ich gesucht hatte! jetzt verstehe ich es auch... Besten Dank!
Danke für eure hilfe!! das funktioniert super! habe nochmal den code angehängt funktioniert super jetzt kann ich ja zu meinem eigentlichen projeckt starten. muss nur noch schauen wo ich 512 LED's herbekomme^^
Hi, du kannst natürlich auch cdsend in der Routine gegen W tauschen was ein schiebebefehl spart
Hallo Muß denn OE mitgeschaltet werden? Kann das Byte CDSend nicht mit dem Schiebebefehl in einer 8ter Schleife ausgegeben werden. Danach Str H/L und Ende. Sonst wirst du mit deiner Programmstruktur mit 512 einzeln anzusteuernden Dioden ein wenig Schreibarbeit leisten müssen. Gruß
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.