Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
microcontrollertechnik:charlie_plexing [2022/12/12 00:49] mexleadminmicrocontrollertechnik:charlie_plexing [2022/12/15 23:24] (aktuell) – [Beispiel eines Charlieplexing] mexleadmin
Zeile 6: Zeile 6:
  
 In <imgref BildNr0> ist ein Beispiel für Charlieplexing dargestellt. es ist folgendes zu sehen: In <imgref BildNr0> ist ein Beispiel für Charlieplexing dargestellt. es ist folgendes zu sehen:
-  * Links ist eine Inputmatrix zu sehen, in welchem durch Druck auf $H$ bzw. $L$ die gewünschte LED aktiviert bzw. deaktiviert werden kann.+  * Links ist die gewünschte Outputmatrix zu sehen, in welchem durch Druck auf $H$ bzw. $L$ die gewünschte LED aktiviert bzw. deaktiviert werden kann.
   * In der Mitte ist die Logik zu sehen, auf die im gleich nochmals eingegangen wird.   * In der Mitte ist die Logik zu sehen, auf die im gleich nochmals eingegangen wird.
   * Rechts ist die LED Matrix zu finden, welche durch Charlieplexing angesteuert wird.   * Rechts ist die LED Matrix zu finden, welche durch Charlieplexing angesteuert wird.
  
-Es soll nun die Logik näher beschrieben werden. Dies kann auch durch Reduktion der Simulationsgeschwindigkeit besser in der Simulation sichtbar gemacht werden: +Es soll nun die Logik etwas näher beschrieben werden. Dies kann auch durch Reduktion der Simulationsgeschwindigkeit besser in der Simulation sichtbar gemacht werden: 
-  - Zunächst wird ein bestimmter Pin eines Ports auf $High$ gesetzt, z.B. $PORTx.0$ +  - Es ist ersichtlich, dass jeweils für ein nebeneinander liegendes LED-Pärchen im Charlieplexing Anode und Kathode vertauscht sind. \\ Im Code werden deshalb immer zwei nebeneinander liegende Werte in der Outputmatrix gleichzeitig behandelt. (Siehe Zeile 141ff in ''CharlieP.c'') Dabei ist für die LED links oben ([0][0]) die Kathode gerade der Pin des Ports $PORTx.0$. 
-  - Für diesen Pin muss auch das Datenrichtungsregister auf $High$ gesetzt werden, dies geschieht durch das $ODER$-Gatter vor dem $DDRx.0$ Pin. +  - UM eine LED leuchten zu lassen wird ein bestimmter Pin eines Ports auf $High$ gesetzt, z.B. $PORTx.0$Für diesen Pin muss auch das Datenrichtungsregister auf $High$ gesetzt werden, dies geschieht durch das $ODER$-Gatter vor dem $DDRx.0$ Pin. \\ Im Code wird dafür im Zeile 158 und 159 die ''portMatrix'' gefüllt
-  - Für +  - Für die LEDs in der ersten Reihe ist $PORTx.0$ entweder die Kathode (jede zweite LED ab [0][0]) oder Anode (jede zweite LED ab [0][1]). \\ Gleiches gilt für die zweite Reihe für $PORTx.1$. Für die dritte Reihe gilt dies nur für die ersten beiden LEDs. \\ Im Code schlägt sich dies in der Ermittlung der ''actCathode'' für ein LED-Pärchen in Zeile 145 bzw. 148 nieder.
  
 <WRAP> <WRAP>
 <imgcaption BildNr0 | Beispiel eines Charlieplexing> <imgcaption BildNr0 | Beispiel eines Charlieplexing>
 </imgcaption> \\ </imgcaption> \\
-{{url>https://www.falstad.com/circuit/circuitjs.html?ctz=CQAgzCAMB0l3AmALATjejGAcVYLAgGz6ECsA7CgIzkIoLngIikhISkCmAtFVQFBgkIAGYB3ACYAnAPYAHADoBHBNFZUQKaAR58obaFSypIpKpCpIKKUs0ggBVYiFr3etlwjfnhzcdPllVXV9exgLfjFPN1pokG4sHEhIuIScV3ifKBTyY0zIYVzhNOyoovjElzzuWOSyr3jkVKSc6qbyhNLUqg8M3kIWsuqe5g6nQari8e6Bro70hs665vTqyuXy2Iza1uFSQknPOYb9uJ2h4tXhCYyFtwnjHFPHo+XqZlP315SXkq+St5UZj9HC-aaA4EjTRAzKzZZgjxguEpf6Vf7nEC-WK-da7WGgpA4EFzNYEom4i5HF4Y6nML40wmNYT-Jrwxm8ArQyGctmgrmY7JeRhkA7EkWNOBsEAABWSQpA4pKiqB9mE0oE8vFsXFSFVMrA-E1p06it1UulCENkEYYM5WCc+WEast8t+TXtoqaaoNRnspHo+IVxvBuA05ngEcl4cjyy1owaGMVdwqXSTyYBKWVsz64MzTXczGIUzABzl1oV+aoJZYhG81eEABEGwAlAAesCtjH9kNm+28szVAHlmwAVdtlrsBkp9io4Iej9sa8tF+KnGfcU6NluLvPFbX507JX0sKeVNOhQwOGMRq-X-jH7sppMXsPX+C3mO7gUr1mdiu+PZaxAL0QCbNtoBdctH06dc5xlYcxwg+8sD9ANtVOWpQw-a9sIjL8zyaLIJ3-K9APsLIt3Ag15UfWIZ1iedEOoqCDgQfMmjYp14IXbQ-044DCIafjKPbZjGDNLwiQ4yA4OlBD20gxgvHsSSHCEmSpTAhS-xoA4qADFUHADETDD44R9OBQjjO4xClxtBxyE9czHPNeSO3lKFdLU8iXJMo9nDGTkxg8PxJFkRQVDUBxQlwCInDpGEOWZRKoVCgIIuCaKwlixxnARZhbV8UQwsCSKQmy8JcoK9lsXZDjivSoIoo0CrYCq-luCadFmDS8KmvKi84oCtpCmqWJetKzKWsG9q+i2RZ6v8Pqyqymb7zyxkyRrYCGuWqaYsq9aEo+A4vhwCaMuag62qOw4MLyc7dsmq7WqG+N7GTU4Lv61awhu11NsxB1ZKPLAUCZbb+m2rxUClRxKl4atgxhU4ICdFISliTrCjsDGmmNJoCC6RGDmDasieWEmmAhin+GbTJychFyiY0Zho0lTLMr+0gfgcREHNLFJCJC8yA2WCSNLNKFllOKEvt-TyPCBHBPKA1mWBYe8lZc5WBYcNWdtYHnUsE87CINj5NdSqMEHOqMLY1nmolV8jtcF52dbVnWxaF+2VI5jTln4pwVI438ollzkEAdIihZjqOY9troLLUlWDJhZYU74ZgpYzlJc5z8ieRSaZddLhpM9mQzBLCIXzKE8zi6iFW7VT5OkHrvldfhPmCrboPzJF7yuiljwC66WWPEj4R-KmTluDNEoF-I8ANeykQAEMABsAGdOGJ41F+NQ8MeP0Uq1FE+oipjdz+rJYMYvlMkpTUGpnPgMid4AzgJLoDuEIOZNWSdiJUy-k-OCABhAAMn+F+y9MhJwQcIGB-BoGrg7gzS+-8n7r23nvNecDSCYJvsQqYmDhAAG1IAAF1KFUBoXA2sRIn4AI0rwChIBqF0NoWg+IzCsH8MrNWPBu996sGSOgheKFBELxQHfUs+hN5iMIfKaRdZRSEm8Jw7hlCECMLUUgB0N8jHnx0bQyhYBGFSNMbI9gkIRFKPweI7INjjGHy-oeaKyiCESLgbY2+8QAmAKlPQuhVj-EyMCeo-hXEwl6OsUEqJh95GrkUfYHxLjJH8PYcaFcgSV6ZNUeWNhRI8nsJCVQhh3CiEkOPiQypXDqkML4RuOp2C3BeIyc4whbjWLFHscBGe3iel+MMQ6fMtiHRUP0ZYgxJStFDKSeRA4My6H6NaYsyZqTWQjJUX4qRAj8w-mGRoIpYySlHOKAI6ZXDZm8LUWQpZbSgGhNmS0qRTyDxAV2Wc0ZgoSnGJDkk2EepdERLUUCly0jMi+S4RYlpkKzEDJYTo2ZEKSnGhYaKOCABlUBBN34Q2ELiuyw9+gfWxWC5p8zGCGW-gVFh1ldEPPLPSyw1xUVxOqREow9dvAGVmAy6KlpnZ5DLsMH2fLwD3xTmASVbNIAIFYKK4CLMk74GBCE4iupvC+XAXChJNT5S6tBWwcBQEqnrNpWwSUwrBn2rudaviWNgVgHnsCq1xrywMEhJg915C4nvJtb6zIn8PXMosRsqIqldaqWFW-YC7CU7Ko-oq5Vv9WyriwBAbOQTSAqx6FKJoABJAAdnIAArgAFwUDvAAthvatUgACWrZ+BZvIOYBw8rMQhOmABEAABjAAFhvKQW8W2cDrXILenBWycAkHWhQCgy3QIAKINjrY25tba-5uEqUSbV+cj1OiZbjKIYBZWf3vsey9t7fBf2PfKZA3gYSvtnFKUlfFKzvvzJUElxFpi8BhMBgDIBv0eQ8CBtm0HwP4r-OAmEX94NkqBaBnFeLiIlhYchoVqHEPQbzWAODWH+BAA noborder}}+{{url>https://www.falstad.com/circuit/circuitjs.html?ctz=CQAgzCAMB0l3AmALATjejGAcVYFYw8EA2ARiQSz1KzUgjARDxCQjwFMBaU0gKDBIQAMwDuAEwBOAewAOAHQCOCaC1IgU0Rt15RW0GqkjVI5PAHYURPf1LEm5rEJ7XHz0pCFMxUuUpVqepC4pnyiIOYIwVyREVEgXFg4kGFx0UlpCR5CKeFuWZ4RTgkZuUXOGfkxTGWR0ciZiVCpVQ1VyS3xLg5ddh15xd3lWcT9wzyjjX3NAxWNY3UlOO0LxbGLsbXFeMTDm53BO5n7syXDC-HLXWNOOEe3cTMapExHKC+PZQ+JOO9MP08-iMcN9pmUgUMIWDUqDrKDJuCPgCIScQN9Yt9Si1BtN4asKiCkDgAVshBiiZ8YRTYkDUd8GhCGl8KTxClDCsyQc8mB0ouYQMQjhMcILdlwosEhAAFFJ8gVCjKirLxaX8OVK2JKpCSkBSsB8dUK+Vi7WsXUIA2QfmgwpYOwFITSi1y+lCO1ihrS-U0Q4of7TJXCoIGEAeeDhuChiPwVIanrBVGBq7pJ5J5NLVNC6aLINlezuaz5rJgXayq0Cho8EvMYjRUjVoQAEUbACUAB6wS38vB+4E1uuTaUAeRbABUO2Xu72ATt0jhh2OO2ry0WuEdZwkjk3W0vY5XNZWjikfcxp4qFclcOow9HIzeI3wTz3-iKjcEYNfb-Ao7e926K14ORdgBIANBunogM27bQM65bPmcG5NAu44wY+WC+j0xqfFeP5frhD7hEWioNNkzTqiRhQbqR27QfqcrwbEG6xMhHZ0XBuwIJWDScY6uojihbH8jxoEkfEwk0axwGmlExLcZA858YuqFyhKoHyaGYnqRJynlqQ5i7KQvYvMEhlMNpy5CUIpkJCRvYsQYwE4HpHpWfpZpSvxE7AaQ1jORpJludpx72FMhQ5j5TDeBIMgKMoqihkEIS2LQNlCFmuxHFEqBmseGRVhlYq8K8uwQI6qQArE4pkjU5VgS54A1eE+U1sWJWNa1DWpZ1KQth1jBZG5-XqEw97BAEoHxe+qgwqGcKhm5ZQkdYtntdJWkmdYZRHBFLXCcevm+ZQs0jbWCU1Mwj6+W5LxOddp3DXoeCXZFok4MJdgmaBj3PWpJlHapH1nd94Q7YDoMLakflg9dvaLXep2qTJTzvQj3FMqk22FAg9qkYtONYzjR1lNZN2hkZHzE+TZkmRTqSmkVrAmRykOTKT0zGU87NiVZ8SLTzY1Wcz4RObaGljOQPNcqTXzHWiYvI1Zy38089PWPTtPhNt1iY0BdjuIUXCmgChufRA756MIACGAA2ADOHBPGuJrREKR7la7hXVk7jv1mKWZe2MzVNKycy5e4hW9v1PBGaBLPRMQVn3UTwHNVHvty0IADCAAyKekSbyrEqaWe59nm5IO4XuIenn1W3bDssJO5eV37FdZG3QgANqQAAup3pA9yntbEunXDD+3vHd33vd8GXY-qUHq41wldf28wzRz0SdZe6gnulivNtr43Kdbx1hvoRPZpT53CCD3Khv2kHSCPxLV+953YCD5vL872n1a14fBuG8EjPz9iaKOR4LaAPXk3B+YCQGPwTlfAeH877lnPi7E0F8x6TxQbfWeIDsFCl3pufewRV5AJSHPce3sx6HjISIaBx9740KFDQpBXcUEz3vngNutDeHOA4SAfufcB4ELXHwj2mDEoUJgeI0BoFnBsEijkKB9c5H3wUZWBR9ou631QSfC+2iL66OEfo-Bm8jFKJQBxVR5CmHAPnm9QR3E7GMPUcw9B49Kzj1MTfaeaD+QSMAs3UMuw9GiK-qE+hAsZEONgS-U658Rg6mvvguUHMJjBDyoDThAS86FT4SyV+ET-EpyNBMM4QgADKsChSVkfhBapFl-JZF7Dkuywj35iPvi-NyySeCBS6fkjJvQ245I7sIvBg9DCtOjidEeMcLQg2KGzHEsM0JCDAF7ayYB1kjUgAgFgyzQJDX+lHJBTcECVVfmAA2JSzEjPLNqAcko06nTyQYuULy2lmTTp0-xXzyzXP9KdO54dUkoJ6c8yMgzwlpyGYC6FQkbmR3uQC9+n9UhI1JkjeZzRZl4uskciOByjmxzbAkewEBeAsC4GAKwoYaBmgaKIS2AA7AALhwcQ8hbZDgAK6ctkEKvlABbS2nLJAAEs2x8EpeYSABkSBonuluRRIAADGAALS2khrbSo4Hy2Q1sOBth5Xy+Q8h2XZwAKKNnFZKmVcqQZJI4cSS5dMPWOkWe1bZpLwBe09eEf1VKvAXKAipI2DNkBzjNM04CwkeAfCTRkGpTdpjJoWRmGpLSdpZtlgCdNwE04fCjmmkACaMmFQ+I-CttSS2TALSWYk9aWmEH9GW6wRbK3BR5MU20xTloiGin4OKgRzYwFCHYJgUJrDsi8CO3wsVxrqEnbAWwIUUSzqRNxJdMV-DxTXcGadIVXRohZLEKKy7D0TpPZu+MXUcxXv3WO1diUp0PvGOsQYe6fAHvHQlddp6d08m5LtV9K6j0fo3Y+M9FJ7gUjepB29QH71wcfUcRYyH-1vug8Br9+RljbA4ihwDx6pqhBdEhtE9oFIyj4EAA noborder}}
 </WRAP> </WRAP>
  
 ===== Lib ===== ===== Lib =====
 +
 +
 {{microcontrollertechnik:charlieplexing.zip}} {{microcontrollertechnik:charlieplexing.zip}}
 +
 +Wichtig: 
 +  * Die vorliegende Lib (und damit der Code unten) ist nur für eine gerade Anzahl von Pins geeignet.
 +  * Zudem muss die Anordnung des Charlieplexings wie im folgenden Bild dargestellt eingehalten werden.
 +
 +{{drawio>microcontrollertechnik:CharliePschaltung.svg}}
  
 ===== Code ===== ===== Code =====