Umstieg Atmega16 auf Atmega644

OP Persönliche Seite #5827065
Lesenswert?

Hi,

ich habe schon einige Upgrades hinter mir, doch diesmal scheine ich 
einen Teil vergessen zu haben. Die entsprechende AppNode von Microchip 
kann ich ebenfalls nicht finden.

Folgendes ist Gegeben:
- Hardware mit aufgestecktem Atmega16
- Passende Software/Quellcode im CMake-Projekt (Auf Ubuntu)
- stk500 kompatibler Flasher (MySmartUSB Light AVRDude)

Mit der Propery für den Atmega16
- compiliert
- flasht
- läuft die Hardware

Mit den Änderungen für den Atmega644 in:
- (Fuses bei beiden auf internenOC)
- timer0
- timer2
- compiliert
- flasht
- und läuft nicht mehr ;)

Im Anhang habe ich die Zeilen, welche angefasst wurden mal 
zusammengeschrieben.
Es ist recht wenig anders, auch die Pinnbelegung ist identisch (siehe 
init();)

Trotzdem mal wieder die Hoffnung, dass viele Augen mehr sehen und eure 
Erfahrung meine vergessenen Änderungen aufdecken.

Noch mal zusammenfassend:
Wenn ich den CMake-Parameter wieder zurück auf Atmega16 stelle 
baut/flasht/läuft das Program (natürlich nur mit dem Atmega16 im 
Sockel).

Grüße Oekel

PS: in dem hochgeladenen Snippet sehe ich gerade, dass ich das
1
while(1)
2
{
3
  //...
4
  wdt_reset();
5
}

zu viel gelöscht habe. Also daran liegt es nicht ;)
Angehängte Dateien:
OP Persönliche Seite #5827095
Lesenswert?

Karl M. schrieb:
> Hi,
>
> ist es ein Atmega644 oder Atmega644P

Ihr meint ich habe mir die falschen Fuses rausgesucht?
Also auf dem Chip steht nur Atmega644A

Die Packung aus der ich ihn entnommen habe hat die
Mouser-Artikenummer: 556-ATMEGA644PA-PU

-->Na super es liegen beide drin :P

Also ich habe beide zur Auswahl. Ein Umschreiben/Umstecken auf den 
Atmgea644P
lässt den gleichen Code aber immer noch nicht laufen.
Also heute Abend ist ein tieferer Blick in die AppNodes nötig.

Danke dafür. Ich halte euch auf den Laufenden, sobald es stimmig wird...
Beitrag #5827107 wurde von einem Moderator gelöscht.
Beitrag #5827111 wurde von einem Moderator gelöscht.
Beitrag #5827148 wurde von einem Moderator gelöscht.
OP Persönliche Seite #5827705
Lesenswert?

Thomas O. schrieb:
> JTAG disable kannst du auch in den Programmcode schreiben, musst nicht
> extra die Fuses verstellen
Nur der Interesse halber: Wie?


Peter D. schrieb:
> D a v i d K. schrieb:
> Wozu die vielen #ifdefs, wenn kein Unterschied ist?
Es gibt ja schon minimale Unterschied..


Wie auch immer, ich habe es nun hinbekommen, indem ich den
1
ISR(TIMER2_COMPA_vect)

statt
1
ISR(TIMER2_COMPB_vect)

verwende und entsprechend
1
void timer2_init (void)
2
{
3
    //[OCR2B = OCR2_TOP;]
4
    OCR2A = OCR2_TOP;
5
    //[TIMSK2 |= (1 << OCIE2B);]
6
    TIMSK2 |= (1 << OCIE2A);
7
#endif
8
}

Somit war alles andere korrekt.

Kann mir jemand noch abschließend sagen, was für den "***2B" 
anders/zusätzlich machen muss, damit dieser läuft?

Grüße und schönen Abend
Gast #5827712
Lesenswert?

D a v i d K. schrieb:
> Thomas O. schrieb:
>> JTAG disable kannst du auch in den Programmcode schreiben, musst nicht
>> extra die Fuses verstellen
> Nur der Interesse halber: Wie?

Evtl. schreiben die so etwas ins Datenblatt.

>
> Wie auch immer, ich habe es nun hinbekommen, indem ich
> denISR(TIMER2_COMPA_vect)
>
> stattISR(TIMER2_COMPB_vect)
>
> verwende und entsprechend
> void timer2_init (void)
> {
>     //[OCR2B = OCR2_TOP;]
>     OCR2A = OCR2_TOP;
>     //[TIMSK2 |= (1 << OCIE2B);]
>     TIMSK2 |= (1 << OCIE2A);
> #endif
> }
>
In welchem Modus läuft den der Timer2?
Was sind dann die TOP, Min- und Maxwerte?
Gast #5827963
Lesenswert?

Peter D. schrieb:
> D a v i d K. schrieb:
>> Kann mir jemand noch abschließend sagen, was für den "***2B"
>> anders/zusätzlich machen muss, damit dieser läuft?
>
> Nun, der CTC-Mode geht nur mit OCR2A bzw. OCR2, wie es in der Tabelle
> "Waveform Generation Mode Bit Description" steht.
> Es gibt dort keinen Eintrag mit TOP = OCR2B.

Danke Peter,

das wollte ich David K., indirekt auch vermitteln.

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