Hallo, ich bin neu hier aber bin schon etwas länger mit Elektronik und Programmierung aktiv. Allerdings nur als Hobby und deshalb auch noch nicht die große Erfahrung. Ich habe aktuell ein Problem mit der Nutzung des 8bit PWM vom Timer TCB0 und TCB1 vom ATTINY3217. Das PWM möchte ich gerne auf die alternativ Pins legen. Dazu habe ich folgende Register "aufgerufen". Allerdings passiert an meinen Pins absolut nichts am Oszi. Das Programm läuft ich habe ein blinkende LED im Loop laufen.
Weiß jemand was ich hier vergessen oder falsch gemacht habe ?
Vielen Dank. So funktioniert es. Jetzt wo du es geschrieben hast, hab ich das auch aus dem Datenblatt nachvollziehen können. In dem Beispiel Code auf GitHub ist das leider nicht so unterteilt.
Wenn das die Lösung war, wäre es nett, meinen Beitrag auch als Lösung zu markieren. Dann wird auch bei der Threadanzeige kenntlich gemacht, das ein Beitrag mit einer Lösung enthalten ist…
Ich hätte noch eine Frage zur Invertierung des Signals. Aufgrund von Anpassung am MOSFET ist ist mein Schaltsignal invertiert, durch einen vorgeschalteten Transistor. Ich habe das Steuersignal vom uC mit einem Pull-Up hoch gesetzt, der uC setzt diesen aber wieder runter. Sodass der MOSFET zu beginn voll aussteuert. Ich habe versucht im Setup() den Pin runter zu setzen. Das jedoch ohne Erfolg. Gibt es hier einen weitere Möglichkeit, das Anzupassen?
die Port Register haben das Feature "Inverted I/O".
Dafür sind die PINnCTRL Register zuständig.
Vielleicht hat dein verwendeter Core Package dafür schon eine Funktion parat.
Ansonsten per Register manuell setzen.
Du kannst auch deine Pulsweite per Software "umdrehen".
ich habe es über CCMPINIT im Control B Register mal probiert. Aber dies bleib leider ohne Erfolg. Im Datenblatt ist auch beschrieben, dass es im 8bit PWM nicht funktioniert.
PINnCTRL Register muss ich mir mal genauer anschauen. Scheint es aber zugeben für den Attiny3217