Hallo Helmut,
Welche Frequenz und welche Auflösung brauchst du für die PWM?
Für eine Software-PWM brauchst du nicht wirklich einen Echtzeit-Kernel, es genügt wenn die Interrupts nicht gesperrt werden.
Allerdings benötigst du einen Timer, welcher den periodischen Interrupt erzeugt.
Ganz spurlos geht die DMA nicht an der CPU vorbei, die DMA klaut der CPU Speicherzyklen.
Die schnellste Ausgabe-Methode ist, wenn du die 24 Bits auf 3 8-Bit Ports verteilen kannst.
Dann baust du einen Ring-Buffer und schreibst bei jedem Interrupt. per Software oder DMA die 3 Bytes in die Ports.
wenn du also 1% Auflösung willst, muss der Ring-Buffer 3*100Bytes gross sein.
Das Hauptprogramm füllt dann den Ring-Buffer mit 1er, entsprechend der gewünschten PWM-Werte.
MfG Peter(TOO)
Lesezeichen