Ich baue mir gerade einen eigenen Platinenbelichter mit Steuerung. Für meine eigene 4-stellige 7-Segmentanzeige habe ich mir einen eigenen Decoder mit einem ATtiny2313 "gebastelt/geschrieben". Um diesen einzustellen habe ich einen zweiten uC, welcher über 2 Verbindungen die Befehle überträgt. Vorweg: Ja ich könnte SPI oder ähnliches nutzen, möchte mich aber im Bereich Timing und uC-Programmierung bereichern. Die Datenübertragung soll so funktionieren: 1. Bit: 1. Verbindung I/O, dann Interrupt auslösen → ausgelöst und uC liest 1. Verbindung → speichert Bit ab. Diesen Prozess wiederhole ich 16mal für 2 Bytes. Mit einem einfachen Testaufbau, 2 Taster und "simulieren", funktiuoniert es sehr gut. Nun aber die Praxis: Sobald ich die beiden uC über die Steckverbindung verknüpf wird scheinbar der Interrupt immer wieder ausgelöst. Dabei macht der "Sender" noch gar nichts. Wenn jemand dieses "Phänomen" kennt, würde ich mich über eine Antwort sehr freuen. Peter K.
:
Bearbeitet durch User
Hi >Wenn jemand dieses "Phänomen" kennt, würde ich mich über eine Antwort >sehr freuen. Falsche Interrupt Sense Control Einstellung ? MfG Spess
Die habe ich auch schon überprüft ... jetzt mal so ne wage Vermutung: Könnten irgendwelche Störungen und daraus resultierende Schwankungen im Verbindungskabel entstehen? ... Peter K.
Hi
>Die habe ich auch schon überprüft ...
Und was hast du mit ISCn1:ISCn0 eingestellt?
MfG Spess
Jetzt mal losgelöst von der löblichen Absicht, sich über µC-Kommunikation zu informieren. Du hast in einem Platinenbelichter einen µC der sich nur um eine 7-Seg Anzeige kümmert; einen weiteren der nur 2 Tasten beaufsichtigt? Wow. Das ist so ziemlich die krasseste Fehleinsetzung einer Mehrprozessor-Lösung, die mir je begegnet ist. Einen Platinenbelichter schupft ein 2313 locker komplett alleine mit links. Und dabei wird ihm sogar noch fad. Aber seis drum: Programm + Schaltplan.
Problem gelöst: Ich danke dir spess ... ich könnt meinen Kopf gegen die Wand kloppen. Beim ISC setzen ne 0 und ne 1 vertauscht Facepalm. Geht jetzt. Bezüglich Karl: Für mich nicht innlos, da der 2. uC mehr Aufgaben übernimmt als du denkst. Und für mich als Einsteiger ist es zum Lernen einfach gut. Peter K.
Peter K. schrieb: > Bezüglich Karl: Für mich nicht innlos, da der 2. uC mehr Aufgaben > übernimmt als du denkst. In einem Platinenbelichter? Jetzt hast du meine Neugier geweckt. Was macht der noch? > Und für mich als Einsteiger ist es zum Lernen > einfach gut. OK, akzeptiere ich. Ich hab ja auch ausdrücklich die Absicht gelobt, sich in der Richtung Prozessor-Kommunikation weiterbilden zu wollen. Trotzdem solltest du dir eine einfache Regel merken. Es hört sich immer gut an, wenn man sagt: Oh, da nehmen wir einfach mehrere Prozessoren. Aber er Teufel steckt im Detail. Die Prozessoren müssen miteinander kommunizieren. In manchen (vielen) Fällen müssen sich die Prozessoren auch gegenseitig synchronisieren. Wer ohne Not mehrere Prozessoren einsetzt, wo einer alleine es auch tut, hatte noch nie mit diesen Problemen zu kämpfen gehabt. Zumal dann ja auch die Kommunikation programmtechnisch zu Buche schlägt, die man aber bei lediglich einem Prozessor gar nicht brauchen würde. Eine 4-stellige 7-Segment Anzeige und ein paar Taster machen ein Multiplex-Code im Timer Interrupt und die PeDa Entprellung in derselben ISR in weniger als 1% der verfügbaren Rechenleistung bei 1Mhz (wahrscheinlich sogar sehr viel weniger). Da bleibt noch jede Menge Resourcen für weitere Features übrig. Nichts für ungut. Ich finds super, dass du das hingekriegt hast und du hast sicherlich eine Menge dabei gelernt. Ich seh aber auch hier im Forum des öfteren, dass gerade Neulinge die Leistungsfähigkeit der µC, die sie in Händen halten, ganz krass unterschätzen. Und natürlich was man mit guter Standard-Programmierung da alles rausholen kann.
:
Bearbeitet durch User
Karl Heinz schrieb: > In einem Platinenbelichter? > Jetzt hast du meine Neugier geweckt. Was macht der noch? 1. Der Decoder ist fähig bis zu 8 Stellen anzusteuern, kann die Lampen dimmen oder einen Testdurchlauf, sprich alle Leds nacheinander einzeln ansteuern, durchführen. Alles auf Befehl steuerbar, die Lampen faden auch zur befehlsmäßig gewünschten Helligkeit. Der 2. uC "betreut" 6 Taster, 2 Taster +/- für Minute, 2 für Sekunden und 2 für Start/Pause und Stopp. Desweiteren steuert er ein Relais zur Ansteuerung des UV-Led-Matrix und hört noch auf einem am Deckel eingebauten Mikrotaster um beim Öffnen Pause u machen und danach weiterzumachen. Er soll über ein "Dev-Mode" einstellbar sein, also z.B. Standardzeit, ... Und der Probleme mit Synchronisation zwischen mehreren Prozessoren bin ich mir bewusst. Peter K.
Peter K. schrieb: > Karl Heinz schrieb: > >> In einem Platinenbelichter? >> Jetzt hast du meine Neugier geweckt. Was macht der noch? > > 1. Der Decoder ist fähig bis zu 8 Stellen anzusteuern, kann die Lampen > dimmen oder einen Testdurchlauf, sprich alle Leds nacheinander einzeln > ansteuern, durchführen. Ja. Haut mich jetzt noch nicht vom Hocker. Ist mit einem Standard-Multiplex in einer ISR alles kein Problem. > Alles auf Befehl steuerbar, die Lampen faden Haut mich immer noch nicht vom Hocker. Bis jetzt sind wir noch immer unter 1% Rechenleistungsverbrauch > auch zur befehlsmäßig gewünschten Helligkeit. Der 2. uC "betreut" 6 > Taster, Ja. PeDa Entprellung. Die Rechenleistung kratzt jetzt maximal erstmals die 1% Hürde. > und Stopp. Desweiteren steuert er ein Relais zur Ansteuerung des > UV-Led-Matrix Ok. ein paar Portpins ansteuern. Nichts weltbewegendes. > und hört noch auf einem am Deckel eingebauten Mikrotaster > um beim Öffnen Pause u machen und danach weiterzumachen. Immer noch nicht. > Er soll über > ein "Dev-Mode" einstellbar sein, also z.B. Standardzeit, ... Ja schön. Die zuletzt benutzte Zeit ins EEPROM speichern und beim Wiedereinschalten von dort holen. Vielleicht ein paar Presets für Belichtungszeiten. Selbstverständlich alles im EEPROM gespeichert und einstellbar. Alles noch immer kein Drama. Und die Zeit zählen muss er selbstverständlich auch :-) Bis jetzt hab ich noch nichts gehört, was einen Tiny2313 ansatzweise ins Schwitzen bringen würde. Die ANzahl der Pins könnte knapp werden. Aber da nehm ich dann auch lieber ein Schieberegister, als mich auf das Abenteuer Mehrprozessor einzulassen. Aber seis drum. Das System steht und funktioniert. Gratulation. WEnn es dich interessiert kannst du ja mal beim nächsten Projekt vorher anfragen, wie man die Dinge programmtechnisch so organisiert, dass ein Prozessor alleine ausreicht. Ist das ein Angebot?
:
Bearbeitet durch User
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.