Neueste Beiträge

#91
O
Mikrocontroller / Aw: High-/Low Priority Interru...
Letzter Beitrag von Ottmar - 25.04.2023, 17:16:44 CEST
Hallo picas

nette Dikussion! Ja,für mich ist das Programmieren in ASM besonders interessant, indem ich dabei zu allen (Un-) Tefen  des PIC  gelange und dazu noch meinen Grips anstrengeund damit mein bereits etwas angegrautes Hinrnkastl auf Trab halte. Immer wieder nehmeich mir ein anderes Modul vor um darin durchzusteigen.

Z.B. habe ich vor einiger Zeit einen Lader für 1 Zelle LiPo programmiert, der wohl immer ein Versuchsaufbau bleiben wird. Für mich ist es dabei nicht wichtig ein fertiges, vorzeigbares Gerät zu erstellen. Wichtig ist mir die Funktionalität der Elektronik und natürlich aud der ASM-Codes  der die ganze Chose zum Laufen bringt.

Vielleicht haben wir uns mißverstande, war ja im vorigen Beitrag nur ein Beispiel. Fast immer verwende ich den TMR0-Overflow Interrupt mit Intervallen von z.B. 4 oder 5ms. Damit entprelle ich Tasten, steuere Delays und messe auch die Zeit.

Ein kleines ISR-Codebeispiel erklärt da vieleicht mehr wie viele Worte. Diese ISR gehört zu dem erwähnten Lipo-Lader mit einem PIC16F1827 und wird alle 5ms aufgerufen, generiert  Sekunde, Minute, Stunde, notalls (nicht eingefügt 1/10s) und das mit ca 30-40 Arbeitszyklen.,. Bleiben also n immer noch knapp unter 5000 Zyklen (bei fosc=4MHz) um den sonstigen Code zur Ladekontrolle, Stromsteuerung, Spannungs-/Kapazitätsmessung usw arbeiten zu lassen.

mfG Ottmar
#92
P
Projekte und Eigenbau / Aw: Platine und Programm für ...
Letzter Beitrag von PICkel - 25.04.2023, 14:07:07 CEST
Hab' ich das richtig verstanden? Du lädtst die Tantals über 11kOhm auf 5V auf und schließt sie dann ohne Strombegrenzungs-R über einen Reed-Kontakt kurz?
Ist zwar immer nur ein kurzer Impuls, könnte aber zum Verschweißen der Kontakte genügen. Oder es wird aus den Kontaktzungen Material heraus"erodiert", das sich dann woanders ablagert. Und die Spitzen dieser Kraterlandschaft könnten dauerhaft Kontakt geben. 
Weiterhin mögen Tantal-Cs solche Stromspitzen nicht und könnten dadurch Schaden genommen haben. Einige 10nF keramisch genügen normalerweise zum Entprellen, wobei ein Schutzwiderstand in Reihe zum Kontakt immer gut ist.

Gruß
PICkel
#93
P
Projekte und Eigenbau / Aw: Platine und Programm für ...
Letzter Beitrag von picass - 25.04.2023, 11:14:16 CEST
Das wäre ein guter Grund für dieses Desaster, alleine.... ich hab' dafür nicht umsonst den Konjunktiv gewählt. Durch diese R-Relais in der Simul-Anlage fließen nur die paar mickrigen Elektronen  des Steuerstromes direkt in einen PIC-Eingang. Da liegt jeweils ein 11 kO R nach Plus 5 Volt, vom dem auf die Relais, dann in den PIC. Das begründet einen "Strom-Stoß" von 0,5 Milliampere. NIX, das kann es nicht gewesen sein.
Aber zu dem Desaster mit den R-Relais gesellt sich in passender Weise mein nachfolgender Beitrag, den ich eben noch vor dem Lesen deines Beitrages erstellt hatte und der nun folgt:

Oben hatte ich u.a. von seltsamen "Digital"-Pegeln gesprochen. Das hat mich nun auch wieder Stunden gekostet. Da lag - wie vor - je ein 11 kO R von PIC-Eingängen nach Plus, was für eindeutige Ruhepegel sorgen sollte, und je ein kleiner Elko von etwa 4,7 µF war beigefügt, was dem Kontaktprellen entgegen wirken sollte. Aber es ergaben sich statt der erwarteten 5,0 Volt horrormäßige 3,6 Volt oder noch niedriger.
Gettz ist das auch geklärt: es waren die Tantal-Elkos - siehe Bild. An denen war nichts Auffälliges, die waren teils gebraucht, teils neu, alle immer richtig gepolt angeschlossen, die meisten vorher extra auf Kapazität getestet und: NIX ! Das war Kern-Schrott. Nach dem Ausbau und vor dem Kloppen in die Tonne nochmal mit dem guten Hameg LC-Meter HM 8018 getest: einwandfreie Anzeige der aufgedruckten Kapazität! Dennoch Kernschrott, die ließen sich nicht auf 5 Volt aufladen. Ach ja, deren Spannungsfestigkeit lag teils bei 35 Volt, das wars auch nicht. Einfach Schrott.
Watt'n Mist, das hält so eklig auf.
Grüße, picass
#94
^
Projekte und Eigenbau / Aw: Platine und Programm für ...
Letzter Beitrag von ^Cobra - 25.04.2023, 10:54:56 CEST
Kann es sein das ein zu hoher Strom durch die reed Relais geht und diese deswegen verkleben bzw. Schrott gehen? 
#95
P
Mikrocontroller / Aw: High-/Low Priority Interru...
Letzter Beitrag von picass - 25.04.2023, 10:00:24 CEST
Hallo Ottmar!
Aus meiner persönlichen Sicht verwendest du für das Programmieren in/mit Assembler exakt das passende Wort: Leidenschaft !
Damit meine ich, dass diese Technik viel Leiden hervorruft, sie benötig soviel Zeit und Arbeit an Details - zumindest ist das bei mir so. Allerdings kann und will ich vorläufig nicht darauf verzichten, trotz eines neulich erfolgten ersten Versuches mit einer modernen Variante von Basic auf einem 32-Bitter.

Aber nu' gibts einen Dissenz: nach meinem Kenntnisstand hat ein Interrupt - egal, welcher Art - schlicht nichts mit Zeitensteuerung zu tun. Ganz im Gegenteil soll eine Interrupt-Routine die normale Arbeit des µC's so kürzest als möglich nur beanspruchen.
Für Zeitensteuerung sind doch diverse Timer und ggf. Schleifen im Programm zuständig. Klar kann der Ablauf eines Timers einen IRQ auslösen, was ja je nach Prog auch nötig wäre, aber die Dauer einer Zeitensteuerung soll nicht von einem IRQ abhängen, sondern nur von den eigentlichen Zeiten-Routinen.
Grüße, picas
#96
O
Mikrocontroller / Aw: High-/Low Priority Interru...
Letzter Beitrag von Ottmar - 24.04.2023, 20:04:12 CEST
@picass 
Assembler ist fast eine Leidenschaft, macht mir einfach Spass!Wenn's klemmt bringe ich vielleicht in C auch was fertig, aber Assembler ist so
rictig knackig! :)

@Alle
Danke einmal für die Anworten!
Ok,meine HP-ISR hat ein Intervall von 5ms (erzeugt Takt für eine Uhr). Meine LP-ISR hat eine Abarbeitungszeit von z.B. 8ms.

Wenn ich das richtig verstanden habe, wird die LP-ISR z.B. nach 4ms von der HP-ISR unterbrochen, nach 5ms ist die HP-ISR fertig und die LP-ISR arbeitet danach ihre restlichen 4 ms Code ab? Das wäre echt perfekt!
mfG Ottmar
#97
P
Mikrocontroller / Aw: High-/Low Priority Interru...
Letzter Beitrag von picass - 24.04.2023, 19:09:17 CEST
Hallo Ottmar und willkommen im Forum!
Is ja ein Ding, dass es noch Assembler-Programmierer gibt. :)

Ein praktisches Beispiel könnte ich mit der von mir gerade bearbeiteten Steuerplatine für das elektr. Öffnen und Schließen eines Garagentores beibringen. Da wirken ja diverse Schalter auf den "normal" schlummernden PIC ein. Der Sicherheits-Drehschalter in der G-Tür oder aber das Funkmodul könnten den PIC auch ganz ohne IRQ aus dem Schlummer reißen. Selbst habe ich aber doch die am PORT A vorhandenen INT-Routinen mit ihrem IRQ genutzt, zum Einen rein aus Gründen der Übung, zum Anderen, weil bei dieser IRQ-Nutzung diese Ports dann über einen Schmitt-Trigger im Eingang verfügen. Dafür könnte man also gut einen LP-IRQ nehmen.
Laut Vorschrift soll jedes elektrisch und fernsteuerbar zu bewegenden G-Tor über eine Stopp-Vorrichtung verfügen, die das Tor stoppt und danach ein Stück zurück fahren lässt, wenn ein Hinderniss im Bewegungsbereich droht, eingeklemmt zu werden. Für dieses Ereignis würde sich ein HP-IRQ bestens eignen, weil der Alles andere sofort unterbrechen kann.

Etwas sollte man allerdings sehr im Auge behalten, wenn man zwei verschiedene Power-IRQs gleichzeitig nutzt: es wäre sicher wichtig, diverse Register bei IRQ-Eintritt zu sichern, damit nach dem "sich-einmischenden" IRQ der vorige Zustand wieder her gestellt werden kann.
Grüße, picass
#98
P
Projekte und Eigenbau / Aw: Platine und Programm für ...
Letzter Beitrag von picass - 24.04.2023, 18:50:08 CEST
Du meinst sicher irgend so'n kleines Brett mit Microkontakten, welches unten an dem G-Tor angebracht wird und bei Auftreffen auf ein Hindernis entsprechend Signal gibt. Wäre ansich eine gute Idee, aber da unten ist kein Platz am Tor. Das schlägt zum einen unten in Drehrichtung direkt an einer Kante an, um korrekt zu schließen und zum anderen ist vertikal nach unten auch höchstens 3 Millimeter Luft. Das wird knifflig, aber vorerst werde ich weiter verzichten, war ja in den letzten Wochen des Betriebes auch so.
Nun ein neuer Beitrag von mir:

Ich wittere Verrat! Mindestens!
Das Bemühen um die Überarbeitung der Elektronikplatine für die Garagentor-Steuerung hatte für diejenige, welche tatsächlich in die G soll, gut geklappt. Nun sollten die Umbau-Arbeiten auch der Simultan-Platine zugute kommen. Klappte scheinbar auch prima, nur beim ersten Test – noch ohne PIC in der Fassung – ergaben sich gleich mehrere völlig unsinnige Pegel. So wurden ja diverse Pinne über 11 k Widerstände auf Plus gelegt und einigen noch ein Tantal mit 6 µF spendiert. Die eingestellten Spannungen lagen bei z.B. 1,6 Volt oder 2,5 V oder 3,2 Volt! Gut, die Beschaltung einer Hilfsplatine mit simulierten Endablage-Schaltern und deren Bestückung war aus den Augen geraten..., das ließ sich leicht korrigieren. Aber gerade die Simul-EA-Schalter machten nur Blödsinn. Das waren kleine Reedrelais, verbaut in teils sehr kleinen Kunststoffgehäusen.

Und diese RRs waren beide defekt. Es sind von Natur aus Schließer, nur dass diese nunmehr immer geschlossen waren. Über gut 2 Jahre hatte die Simul-Anlage prima funktioniert, incl. der beiden RRs. Aber nu' klebten bei beiden die Kontaktzungen zusammen, obgleich es keinen erkennbaren Grund dafür gab: zwei auf einen Streich defekt. Nach einer Runde Sich-Wundern wurde ein Ersatztyp ausgeschaut, vorsichtshalber vorher durch gemessen, alles in Ordnung. Der wurde dann zweimal eingebaut und schon wieder so'n blöder Pegel zwischen allen Digital-Welten! Schon wieder kontrolliert und gucke da: einer der gerade noch kontrollierten war auch schon wieder hin und fungierte als Kleber!

Was geht da ab bei diesen Reedrelais?! Sind euch solche Ausfallraten auch bekannt? Und dabei waren die ja keineswegs jahrelang im Dauereinsatz, nix, die ersten beiden hatten vielleicht 50 Schaltvorgänge, die beiden ,,Neuen" nur einen einzigen! Das kann doch nur Sabotage sein! >:(
Oder Sabotage! >:D
Grüße, picass
#99
P
Mikrocontroller / Aw: High-/Low Priority Interru...
Letzter Beitrag von PICkel - 24.04.2023, 18:46:54 CEST
Hallo,

die HP-ISR kann eine LP-ISR unterbrechen und sich quasi "reindrängeln".
Nach Beenden der HP-ISR wird die LP-ISR zu Ende abgearbeitet.
So kann man bei zeitkritischen Abläufen eine schnelle Reaktion des PIC erreichen ohne auf das Ende einer momentan aktiven LP-ISR zu warten.
Es kann also durchaus sinnvoll sein, untergeordneten Prozessen eine LP-ISR zuzuweisen.

Gruß
PICkel
#100
O
Mikrocontroller / High-/Low Priority Interrupt P...
Letzter Beitrag von Ottmar - 24.04.2023, 17:05:12 CEST
Hallo,
durch einen Beitrag in diesem Forum wurde ich angeregt, mich mit HIGH-/LOW-Priority-Inerrupt zu beschäftigen. Nach einigem Stolpern  habe ich dies per Assembler mit einem PIC18F2450 verwiriklichen können. Nun blinkt es 10x per HP-ISR und geht danach in den SLEEP-Modus und kann nahc Belieben per Tastendruck mittels derLP-ISR wieder zum Blinken erweckt werden.
Meine Frage:
Da mir selbst nichts dazu einfällt, hat jemand eine Idee zu welcher Probemlösung (ausser zum Wecken aus SLEEP) so ein zusätzlicher Low-Priority-Interrupt die ultimate Problemlösung sein könnte?
Gruß Ottmar