Code vom Mega8 auf Mega48

dg2ygq

Neues Mitglied
23. Juli 2007
239
0
0
Bielefeld
Sprachen
Ich hab da ein Problem mit dem Timer2 beim Mega48.
Während ich beim Mega8 den PB3 (OC2) benutzt habe, funktioniert das beim Mega48 nicht. Ich brauch einen Frequenzteiler :confused:

Hier ein Ausschnitt vom Mega8:
Code:
Config Timer2 = Timer , Clear Timer = 1 , Compare = Toggle , Prescale = 1
 Ocr2 = 1

Wie muss ich das nun für den Mega48 umschreiben :confused:
Und wo find ich dann meinen Ausgang mit der geteilten Frequenz ?
 
Der Mega48 hat zwei PWM auf Timer2, daher musst du entweder A oder B angeben
Für PB3 (OC2A) also
Config Timer2 = Timer , Clear Timer = 1 , Compare A = Toggle , Prescale = 1
Ocr2a = 1
für PD3 (OC2B) dann
Config Timer2 = Timer , Clear Timer = 1 , Compare B = Toggle , Prescale = 1
Ocr2b = 1

HBA
 
Puhhh, ich bin am verzweifeln.
Habe nun auf ocr2a umgeschrieben, allerdings zeigt der Frequenzzähler dort ganz merkwürdige Dinge an.

Zur Config vom 48er , Externer Quarz mit 10.240Mhz :
SUT_CKSEL: Ext. Crystal Osc. 8.0- MHz; Start-up time PWRDWN/RESET: 258 CK/14 CK + 4.1 ms
und bei CKDIV8 Häkchen raus
richtig? (Ist ein einfacher Quarz hier schon "Ext. Chyistal OSC" ?)

Der OC2A soll bei OCR2A=1 2,56 Mhz ausspucken OCR2A=3 soll 1,28Mhz ausgeben. Tut er aber nicht.
Was habe ich denn nun noch alles übersehen ?
 

Anhänge

  • meg48.jpg
    meg48.jpg
    101,3 KB · Aufrufe: 3
Hallo,

ich war das erste mal beim Mega48/88/168 auch am verzweifeln.
1. Die Register heißen teilweise anders (zB UBBR0H statt UBBRH , also ne Null dazwischen)
2. Die Register sind teilweise Memory-mapped statt IO-mapped (wichtig bei Assembler)

sonst ist das Ding pinkompatibel zum Mega8
schau mal in die "Register-Summary" ins Datenblatt ...
M48-88-168_Register.png

Die Registernamen sind eher an die "Großen" wie Mega128 usw angelehnt.

Gruß
Dino
 
Also liegen wir hier mit OCR2A schon genau richtig, um das auf PortB.3 auszugeben.
Auch habe ich PortB.3 als Output festgelegt.
Wie sieht das mit meinen Fuse`s aus? Habe ich die soweit richtig eingestellt?
Muss ja was kommen, denn auf dem Mega8 läuft es ja (mit nur OCR2)
:confused:
 
Ich find den Fehler nicht. Das multiplexen der 7-Segmentanzeige und alles andere funktioniert auf dem Mega48 ....
Nur Timer2 will ganz und gar nicht.
Hier mal ein komplettes Programm, welches auf dem Mega8 läuft (habe nur OCR2 in OCR2A geändert)

Code:
$regfile = "m48def.DAT"
$crystal = 10240000  'Quarz mit 10,240Mhz

Config Portb.3 = Output  'ocr2a
Config Portd.3 = Output  'ocr2b

Config Timer2 = Timer , Clear Timer = 1 , Compare = Toggle , Prescale = 1
Ocr2a = 3   '3 = 1,280Mhz , 1 = 2,560Mhz

Do
Loop

End

Entweder habe ich bei den Fuses irgend welchen Mist gemacht (habe ein Screenshot oben beigefügt) oder der Wurm sitzt im Code :confused:
 
Hallo,
es ist leider so, dass Bascom dies
Config Timer2 = Timer , Clear Timer = 1 , Compare = Toggle , Prescale = 1
ohne Fehlermeldung annimmt.
Wie ich oben schon geschrieben habe, musst du aber sagen welchen der beiden Compares du benutzen willst, also für OC2A musst du dies angeben
Config Timer2 = Timer , Clear Timer = 1 , Compare A = Toggle , Prescale = 1

HBA
 
AAAAAAAAAArggggggggggg...
Da leg der (mein) Fehler !

Ich habs Augenmerk nur auf OCR2A gelenkt.

Sorry und Dankeschön!
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)