Forum: Mikrocontroller und Digitale Elektronik PWM Register OC1B ansteuern ATMEGA8


von hans bergauer (Gast)


Lesenswert?

Tach kann sich jemand mal das Programm ansehen.
1
  sbi  DDRB,1
2
  sbi  PORTB,1
3
  ldi  r16,0b10000001  
4
  out  TCCR1A,r16
5
  ldi  r16,0b00000010  
6
  out  TCCR1B,r16
7
  ldi  r16,50
8
  ldi  r18,0
9
  out  OCR1AH,r18
10
  out  OCR1AL,r16

Kann mir das Programm bitte für das Register OC1B umschreiben.
Ich bin nähmlich kurt vor dem verzweifeln.

von Hannes L. (hannes)


Lesenswert?

Das ist kein Programm. Es fehlen die Kommentare und die Bitnamen.

Um es zu verstehen, müsste man sich mühsam die Bitnamen aus dem 
Datenblatt zusammensuchen, was aber auch nicht zuverlässig funktioniert, 
da der AVR-Typ nicht angegeben wurde und die Timer der unterschiedlichen 
AVRs unterschiedlich ausgestattet sind.

...

von schonlangeher (Gast)


Lesenswert?

Was hast du vor und was klappt nicht? Wenn die Funktionalität 
unverändert bleiben soll muss im Grunde nur anstelle von COM1A1 COM1B1 
gesetzt werden:
1
  sbi  DDRB,1
2
  sbi  PORTB,1
3
  ldi  r16,0b10000001  ->  ldi  r16,0b00100001  
4
  out  TCCR1A,r16
5
  ldi  r16,0b00000010  
6
  out  TCCR1B,r16
7
  ldi  r16,50
8
  ldi  r18,0
9
  out  OCR1AH,r18      ->   out  OCR1BH,r18
10
  out  OCR1AL,r16      ->   out  OCR1BL,r16

Leserlich ist der Code nicht. Sieht aus als hättest du ihn nicht selbst 
geschrieben. Versuch ihn zu verstehen denn lang ist er ja nicht. 
Datenblatt, AVR-Studio Simulator, 'ne Tasse Kaffe und 'ne Stunde Zeit 
reichen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.