Fast-PWM ATMega8

Gast #1721008
Lesenswert?

Hallo
Ich versuch gerade Fast PWM (mode 15) mit meinem ATMega8 umzusetzen! 
Jedoch funktioniert das nicht so wie ich mir gedacht habe!
Hier ist mein Quellcode:
1
.include "m8def.inc"
2
main:
3
  ldi r16, 0xFF
4
  out DDRB, r16   ;PORTB auf Ausgang
5
  
6
  ldi r16, (1<<COM1B1) | (1<<WGM11) | (1<<WGM10)
7
  out TCCR1A, r16     ;non-inverting mode und mode 15
8

9
  ldi r16, (1<<WGM12) | (1<<WGM13) | (1<<CS10) | (1<<CS12)
10
  out TCCR1B, r16     ;mode 15 und Prescaler 1024
11

12
  ldi r16, 0xFF
13
  out OCR1AH, r16
14
  ldi r16, 0xFF
15
  out OCR1AL, r16     ;Top Value: 0xFFFF
16

17
  ldi r16, 0x99
18
  out OCR1BH, r16
19
  ldi r16, 0x99
20
  out OCR1BL, r16     ;Compare Value 0x9999
21

22

23
loop:
24
  rjmp loop
Ich hab eine LED an PB1 angeschlossen aber die leuchtet durchgehend...
Übrigens hab ich ein 16 MHz Quarz angeschlossen und die Fuses gesetzt!
Was mach ich noch falsch?
Gast #1721037
Lesenswert?

Hi

>Ich hab eine LED an PB1 angeschlossen aber die leuchtet durchgehend...
>Übrigens hab ich ein 16 MHz Quarz angeschlossen und die Fuses gesetzt!
>Was mach ich noch falsch?

Läuft dein Controller wirklich mit 16MHz? Also Fuses richtig gesetzt?

MfG Spess
Gast #1721105
Lesenswert?

Also ich hab mit dem Controller schon mal USART betrieben und es hat 
funktioniert! Hab Häckchen bei
-SUT1
-BOOTSZ1
-BOOTSZ0.
Weis nicht was ich falsch mache!? Der Code müsste auch richtig sein 
oder?
Gast #1721572
Lesenswert?

> das im Datasheet nicht wirklich steht, an welchem Pin der Ausgang
>(für mode 15) ist

Für Mode 15 gibt's in diesem Sinn keinen Ausgang.

Welcher der OCxX Ausgänge aktiv ist, entscheidet nicht der Mode 15 über 
die Waveform Generation Mode(WGM)Bits, sondern das wird über die Compare 
Output Mode(COM) Bits eingestellt, wobei in COMxXx die "x" folgendes 
bedeuten:

x = Timernummer, X = A oder B Kanal, x = Konfigurationsbitnummer.

Genauso sieht's auch mit dem OCxX Ausgang aus, da Du über COM1B1 den 
B-Kanal von Timer1 genutzt hast, ist natürlich auch der OC1B aktiv, und 
wenn man im Datenblatt nachsieht, dann findet man den im Pinout auf 
Seite 2.

Das ist alles Basiswissen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren