12x PWM + TWI-Slave ... möglich?
Hallo!
In Bascom will es nicht richtig, deswegen hab ich mal vor, es in ASM zu probieren. Allerdings will ich wissen, ob ich dabei technisch überhaupt Erfolg haben kann. Ich muss 12 Software-PWMs (8 Bit) haben. Ausserdem soll der Mega8 noch als TWI-Slave arbeiten, um die PWM-Werte entgegenzunehmen. Ca. 30x12 Byte pro Sekunde. Was ich mich frage ist, ob die PWMs sichtbar unterbrochen werden, wenn Daten kommen (Es hängen 4 RGB-LEDs an dem Controller). Das wäre nämlich absolut gar nicht gut in der Anwendung.
Re: 12x PWM + TWI-Slave ... möglich?
Zitat:
Zitat von Goblin
Ich muss 12 Software-PWMs (8 Bit) haben.
Problemlos möglich, ich hab vor nicht allzulanger Zeit 16 Software PWM Kanäle mit 8 Bit Auflösung bei 500 Hz realisiert.
Der Mikrocontroller lief dabei mit 16 MHz und er war von der Rechenzeit her zu ca. 30% ausgelastet, insofern die PWM Werte konstant blieben.
Neue PWM Werte benötigten ca. 3-4 ms um verarbeitet zu werden.
Zitat:
Zitat von Goblin
Ausserdem soll der Mega8 noch als TWI-Slave arbeiten, um die PWM-Werte entgegenzunehmen. Ca. 30x12 Byte pro Sekunde.
Bei meiner Anwendung wurden die neuen Daten über die serielle Schnittstelle übertragen. Flackern oder Stehenbleiben gab er wären der Übertragung nicht.
Im übrigen würde ich die TWI nicht pollen sondern mit einem Interupt und entsprechenden Statusflags arbeiten.
Vom Prinzip her funktioniert es recht einfach, der Code allerdings ist wesentlich komplexer und Assemblertypisch recht schlecht lesbar. Deshalb möchte ich hier davon Abstand nehmen ihn zu posten.
Das Funktionsprinzip (ein kurzer Umriss):
Ich benötige einen schnelllaufenden Timer, welcher für die Ansteuerung der LED`s zuständig ist.
Die eingehenden Daten werden in eine Kanalmatrix umgerechnet, welche neben dem tatsächlich angesprochenem Kanal(Pin) auch den entsprechenden Helligkeitswert beinhaltet. Anschließend wird die Kanalmatrix nach der Helligkeit sortiert und gepackt. Diese Daten stehen dann im RAM bereit und werden in der Timerroutine nur noch ausgegeben.
Bei Bedarf kann ich das System das dahinter steckt gerne näher erläutern.
Grüße,
Hanni