Tesla schrieb:
> Ich möchte gerne auf dem pollin avr-net-io die ethersex-Firmware
> verwenden. Das hat soweit auch funktioniert.
Gut.
> Nun möchte ich hardware-pwm benutzen:
> http://www.ethersex.de/index.php/PWM_Generator
Der Code ist ziemlicher Vollschrott, selbst für OpenSource-Verhältnisse.
Ein typisches Produkt der "works for me"-Klasse...
> Dazu habe ich PWM konfiguriert und für die Kanäle A, B und C PWM
> aktiviert.
> Ja ich habe dem dritten Kanal einen Pin zugeordnet.
Welchen denn? Es ist nicht damit getan, einfach nur einen Pin
hinzuschreiben. Es muß auch ein ansonsten unbenutzter Timer
existieren, der ihn (genau diesen!) tatsächlich ansteuern kann.
Nachdem in der Standardkonfiguration PD4 und PD5 angegeben sind (also
die beiden PWM-Kanäle von Timer1) kommen für einen dritten Kanal
generell bloß noch PD7 (Timer2) oder PB3 (Timer0) in Frage, denn mehr
Timer hat der Mega32 nicht, und diese beiden Timer haben beim Mega32 nur
je einen PWM-Kanal und der ist eben zu genau diesen beiden Pins
"verdrahtet". Völlig sinnlos, irgendeinen anderen Pin zu versuchen.
Und ob es dann funktioniert, hängt immer noch davon ab, ob nicht
irgendein anderes konfiguriertes Modul oder gar das System selber sich
den Timer für seine Zwecke bereits unter den Nagel gerissen hat.
Irgendeinen der Timer benutzt jedenfalls bereits das
Ethersex-Grundsystem, soviel ist mal sicher. Ich bin aber zu faul, jetzt
selber in den Quelltexten nachzuschlagen, welcher das ist. Das mach' mal
schön alleine...
Übrigens: Mit einer Aufrüstung auf Mega1284P bringst du einen weiteren
Timer mit zwei PWM-Kanälen in's System, außerdem haben sowohl Timer0 als
auch Timer2 beim 1284P je zwei Kanäle. Damit erhöhst du immerhin die
potentielle Pin-Auswahl gewaltig und auch die Wahrscheinlichkeit, daß
eben zwei der vier Timer noch frei (oder wenigstens mitnutzbar) für
deine PWM-Zwecke sind.
Allerdings kann der schrottige Code dieses "PWM_Generator" mit der
Hardware eines 1284P nix anfangen. Da müßtest du dann selbst
nachbessern. Also genau das tun, was du vielleicht willst, aber nicht
kannst: programmieren...