Naja hab mich schon bei void main(void) zurückgehalten.
Kannst mal sehen, wie oberflächlich ich manchmal lese...
@Enterprise, ändere Dein Programm bitte so, daß es ein int zurückliefert, auch wenn beim AVR nichts zurückgeliefert wird, es ist halt so und müsste eigentlich eine Warnung beim kompilieren geben...
zu Deinem PWM Kanal
Code:
TCCR1A = (1<<COM1B1)|(1<<WGM10)|(1<<WGM12);
8 Bit Fast PWM Modus
OC1B geht LOW bei Compare Match also TCNT1= OCR1B
OC1B geht HIGH bei Bottom also TCNT1 = 0
Wenn Du das auf OC1A ändern willst muß so aussehen:
Code:
TCCR1A = (1<<COM1A1)|(1<<WGM10)|(1<<WGM12);
und anstatt OCR1B nimmt man halt OCR1A und ja PB1 muß dann als Ausgang deklariert werden.
Zu der PWM Frequenz, tja was ist sinnvoll für Motoren ? 10 kHz ?
wenn Du den Timer mit µC Takt laufen läßt hast Du eine PWM Frequenz von 14745600 / 256 = 57,6 KHz
bei Prescaller 8 7,2 KHz
bei Prescaller 64 900 Hz
Muß mal schauen, was am besten passt.
Und mach das dann so wie McJenso sagt,
am Anfang Timer Initialisieren, im Programm dann nur OCR1A ändern
0 -> Stopp
255-> Voll
128 -> Halb usw.
Gruß Sebastian
Lesezeichen