Sida 1 av 1

byta Mega8 till Mega16 i C o winavr

Postat: 14 juni 2005, 10:33:04
av lizerdboy
jag skulle vilja byta upp mig i uc ett projekt.
grejen är att mycket av koden är redan klar , så jag undrar hur svårt och mycket som krävs att ändra i C koden.

projektet byygger på mattewi´s USBISP för avr prog via usb.

Postat: 14 juni 2005, 12:11:53
av cykze
Kompilera om koden för Mega16 så ser du ju av felmeddelandena vad som behöver ändras. Eller?

Postat: 14 juni 2005, 12:57:03
av MicaelKarlsson
Glöm inte att kontrollera pinout på båda så att det inte blir något strul med det.
Lycka till!

Postat: 14 juni 2005, 12:59:09
av simon78
Det kan ju hända att du får byta pinne på någon I/O också. När jag uppgraderade så hamnade det alternativa funktionerna på pinnar som jag hade tänkt att använda. Tex JTAG kom på PD0 (typ) och det blev lite störningar, fixades genom att stänga av JTAG. Annars gick det helt smärtfritt. "programmeringspinnarna" sitter dessutom mycket mer logiskt på ATMega16, blir inte lika rörigt. Glöm inte ändra för programmeraren också, jag körde -m8 till avrdude, tog en stund att komma på vad som var fel.

Postat: 15 juni 2005, 13:03:13
av lizerdboy
men de är inte mycket som behövs göras allså ?

de mesta fixar Kompilern ?.

men har man adreserat port b7 som led 1 så kommer väll LED 1 att vara på portB 7 på den nya processorn med ? eller ,
jag fattar att om de är extra funktioner på porten så kan de strula , men annars så ska de väll vara samma elle ?=)

Fuses är dom likadanna på dom olika processorerna ???

som ni märker så är jag inte så inne på AVR då jag bara har pyslat en hel del med PIC , men tänkte att de e dags att ta steget upp =)

Postat: 15 juni 2005, 13:10:04
av Icecap
Om du anger 'portb.7' (eller vad det heter på AVR) kommer kompilern att göra rätt. Om du anger hårdvaruadresser måste du kolla noga själv men håller du dig till det "normala" fungerar det helt automatisk.

Hur det är med fuses har jag ingen aning, kör inte med AVR. RTFM. (för dom som inte vet vad det betyder: Read The Fucking Manual)

Jag portade själv en IIC + RTC-rutin från ett fabrikat µC till ett annat, fick ändra portnamnen, allt annat körde i första hugg.

Det är grejen med C liksom....det kallas portabilitet. Du kan använda samma programsnudd på olika plattformar och de gör det samma om man frånser från hårdvaruspecifika saker (serieporten på en Fujitsu är sannolikt "lite" olika en PIC-serieport typ)