Schaltest du den Port als OUT?
Zudem ist besser: OCRIA = 4;
hab ein kleines timer problem
eigentlich solte man beim timer1 ein pwm signal generieren können, bei dem man die frequenz und das on of verhältnis andern kann
nur klappt das bei mir leider nicht so richtig
wäre coll wen mir wer helfen kannCode:#include <avr/io.h> #include <avr/interrupt.h> typedef unsigned char byte; static void pwm_init(void); // pwm ==> phase correct, 8 bit int main(void) { pwm_init(); for(;;) { } } static void pwm_init(void) { TCCR1A = (1<<COM1A1)|(0<<COM1A0)|(0<<WGM11)|(1<<WGM10); // PWM Phasen und Frequenzgenau, Ausgang wählen TCCR1B = (1<<WGM13)|(0<<WGM12)|(0<<CS12)|(0<<CS11)|(1<<CS10); // set clock/prescaler 1 -> enable counter OCR1AL= 4; }
Schaltest du den Port als OUT?
Zudem ist besser: OCRIA = 4;
Disclaimer: none. Sue me.
ja es wird ein port als ausgang geschalten
das fuktzt zumindestens schon mal bei der simulation
hab das mit diesem frequenzgenau phasengenau noch nicht so wirklich verstanden aber mit der formenl komm ich eben genau auf meine gewünschten frequenzen
10Khz= 10Mhz>/(2*top)
hab das aber noch nicht ganz mit den registern kappeirt in die ich schreiben muss
hmm topp wäre dann auf 500 zu stellen geht das müsste ja gehen ist ja ein 16 bit timer oder
wo schreibe ich top hin
thx
Musst im Handbuch shauen, weiß ich jetzt auch net Auswendig.. TOP ist fest oder OCR1A oder OCR1B oder ICR1, je nach Timer1-Mode.
Disclaimer: none. Sue me.
habs grad gemerkt
OCRIA = 4;
aber wenn ichs im simulator teste funktiniert das nicht
ist mir gerade aufgefallen mit jatag gehts ohne probleme komisch?
dann geht nur OCRIAL/H aber ist ja nicht weiter tragisch
der ausgang musste sich eigentlich durch die deffoiniton von
(0<<COM1A1)|(1<<COM1A0)
schalten lassen oder bin ich falsch
top ist OCR1A oder ICR1 je nach phasen frequenz modus gibt zwei
funktioniert jetzt wnigstens schon mit dem auf abwertszählen nur mit dem ausgang hab ich noch ein problemchenCode:void pwm_init(void) { DDRD |= (1<<PIND4); OCR1A=32; OCR1B=16; TCCR1A = (0<<COM1B1)|(1<<COM1B0)|(1<<WGM10); // PWM, phase correct, 16 bit. TCCR1B = (1<<WGM13) |(1<<CS10); // set clock/prescaler 1 -> enable counter sei(); }
Lesezeichen