Pic vs. AVR
Pic vs. AVR
Hej!
Undrar vad som skiljer en Pic från en AVR
vilken är bäst?,Lättast att programera?
Undrar vad som skiljer en Pic från en AVR
vilken är bäst?,Lättast att programera?
Re: Pic vs. AVR
Om du ska använda en C kompilator är de ungefär lika att programmera =) Fördelen är nog till AVR här eftersom det finns en gratis C-kompilator, winavr (GCC).
Att bygga programmerare till dem är i stort sett också lika lätt, båda klarar in-circuit-serial-programming.
Om du ska programmera i assembler tror jag nästan att PIC är lättare om du är nybörjare. PIC är lite speciell och har endast ca 30 kommandon, vilka är mycket lätta att lära sig =)
Har du programmerat assembler för någon annan processor tidigare är kanske AVR lättare för dig eftersom den liknar många andra processorer.
Det är vad jag tycker i varje fall! Jag använder avr och pic ungefär lika mycket, oftast pic till små enkla projekt och avr till lite större... vet inte varför men det har blivit så =)
Att bygga programmerare till dem är i stort sett också lika lätt, båda klarar in-circuit-serial-programming.
Om du ska programmera i assembler tror jag nästan att PIC är lättare om du är nybörjare. PIC är lite speciell och har endast ca 30 kommandon, vilka är mycket lätta att lära sig =)
Har du programmerat assembler för någon annan processor tidigare är kanske AVR lättare för dig eftersom den liknar många andra processorer.
Det är vad jag tycker i varje fall! Jag använder avr och pic ungefär lika mycket, oftast pic till små enkla projekt och avr till lite större... vet inte varför men det har blivit så =)
- EagleSpirit
- Inlägg: 1288
- Blev medlem: 27 maj 2003, 23:15:48
- Ort: Västerås
- Kontakt:
jag tycker att AVR är lite mer avancerad, alltså man använder AVR till lite större projekt.
AVR har fler funktioner än PIC i dom flesta modellerna och i AVR har ju alla flash eprom. PIC har det bara i vissa.
AVR är dubbelt så snabb som PIC tror jag. PIC är utför en instruktion på 1/4 av kristallen medan AVR har 1/2 av kristallen. Men jag är inte säker.
PIC är billigare i dom lite mindre modellerna men i de större är AVR billigare. Kanske är det jag menar med det jag skrev längst upp. Till små projekt använder man PIC pga priset. PIC är nog också lite lättare i assembler.
AVR har fler funktioner än PIC i dom flesta modellerna och i AVR har ju alla flash eprom. PIC har det bara i vissa.
AVR är dubbelt så snabb som PIC tror jag. PIC är utför en instruktion på 1/4 av kristallen medan AVR har 1/2 av kristallen. Men jag är inte säker.
PIC är billigare i dom lite mindre modellerna men i de större är AVR billigare. Kanske är det jag menar med det jag skrev längst upp. Till små projekt använder man PIC pga priset. PIC är nog också lite lättare i assembler.
Här är en enkel ISP-programmerare för AVR: http://www.qsl.net/zl1bpu/micro/ENV/PGM.htm
En ganska bra krets att starta med är kanske AT90S2313, den kostar ca 50kr och innehåller det mesta som man som nybörjare kan behöva.
En ganska bra krets att starta med är kanske AT90S2313, den kostar ca 50kr och innehåller det mesta som man som nybörjare kan behöva.
Är lite oklar med vad du menar "1/2 av kristallen"? Ifall "kristallen" innebär en klockcykel, så tror jag du har lite fel. Tror AVRer utför de flesta av sina instruktioner på endast 1 klockcykel, tror detsamma gäller PIC, men jag är också lite osäker, måste jag säga.EagleSpirit skrev: AVR är dubbelt så snabb som PIC tror jag. PIC är utför en instruktion på 1/4 av kristallen medan AVR har 1/2 av kristallen. Men jag är inte säker.
AVR utför de flesta instruktionerna på en klockcykel, vissa tar dock 2 och några få tar 3 klockcykler
PIC utför samtliga instruktioner på fyra klockcykler och alla instruktioner som involverar programhopp tar åtta (och ja, det står fel i elfa)
PIC går oftast att klocka lite högre, men inte så att de blir snabbare än AVR.
PIC utför samtliga instruktioner på fyra klockcykler och alla instruktioner som involverar programhopp tar åtta (och ja, det står fel i elfa)
PIC går oftast att klocka lite högre, men inte så att de blir snabbare än AVR.
- EagleSpirit
- Inlägg: 1288
- Blev medlem: 27 maj 2003, 23:15:48
- Ort: Västerås
- Kontakt:
Om man med klockcykler räknar den externt matade klockan då. Den delas ju ner med fyra internt, så inne i processorn utförs ju instruktionen på en eller två (interna)klockcykler... Det är det dom menar i ELFA. Med klockcykel brukar dom tydligen oftast mena den klockan som processorn använder, så att säga.strombom skrev:AVR utför de flesta instruktionerna på en klockcykel, vissa tar dock 2 och några få tar 3 klockcykler
PIC utför samtliga instruktioner på fyra klockcykler och alla instruktioner som involverar programhopp tar åtta (och ja, det står fel i elfa)
PIC går oftast att klocka lite högre, men inte så att de blir snabbare än AVR.
Jag kan inte ett skit om AVR, men jag har hört att AVR tar längre tid på sig att utföra en innstruktion, men däremot blir det färre instruktioner för att utföra samma sak på en AVR eftersom den har en mer omfattande instruktionsuppsättning. Så AVR är snabbare på mer avancerade program, medans PIC:en är snabbare på enklare grejer, "bit-banging" som någon uttryckte det. Det är så jag har fått det förklarat av en AVR fantast på admittansen en mörk kväll förrförra hösten. kanske har hänt en del sen dess.
Här: http://www.olimex.com/dev/ finns två enkla programmerare för AVR. En för serieporten och en för parallell (nästan identisk som den lite längre upp i tråden). De har även tips om passande program.
Att en avr skulle ta längre tid att utföra en instruktion... kan jag inte hålla med om...GLT_Kent skrev:Om man med klockcykler räknar den externt matade klockan då. Den delas ju ner med fyra internt, så inne i processorn utförs ju instruktionen på en eller två (interna)klockcykler... Det är det dom menar i ELFA. Med klockcykel brukar dom tydligen oftast mena den klockan som processorn använder, så att säga.strombom skrev:AVR utför de flesta instruktionerna på en klockcykel, vissa tar dock 2 och några få tar 3 klockcykler
PIC utför samtliga instruktioner på fyra klockcykler och alla instruktioner som involverar programhopp tar åtta (och ja, det står fel i elfa)
PIC går oftast att klocka lite högre, men inte så att de blir snabbare än AVR.
Jag kan inte ett skit om AVR, men jag har hört att AVR tar längre tid på sig att utföra en innstruktion, men däremot blir det färre instruktioner för att utföra samma sak på en AVR eftersom den har en mer omfattande instruktionsuppsättning. Så AVR är snabbare på mer avancerade program, medans PIC:en är snabbare på enklare grejer, "bit-banging" som någon uttryckte det. Det är så jag har fått det förklarat av en AVR fantast på admittansen en mörk kväll förrförra hösten. kanske har hänt en del sen dess.
De flesta matmatiska och arimetrisk tar 1 Klockcykel (typ alla utom mul mm som tar 2) och bit instruktioner som out, in mm
läsning från Ram tar 2 cykel
Läsning från program mine samt ljmp (om man har mer än 128kB) tar 3 cycklar typ
med då är klock cykel lika med clock frekvensen som på pic 1/4 externa klockan...
så om man kollar på elfa så hittar man PIC som är 33Mhz vilket skulle i ideal fallet ge 33/4 = 8.25Mips
och AVR finns i 16Mhz på elfa deta skulle då ge 16/1 = 16Mips i ideal fallet
Nu vet jag att man inte kan gemföra rakt av Mips men det ger en finnger visning.
Avr anväder en stack pekare som gör att hela ram minet kan användas som stack om det skulle behövas (dock ej på modeler utan ram), PIC har fast stack normalt 8 eller 16nivåer, AVR använder pekare för att komma åt ram minet (uptill 64KB med vanliga pekare), pic banker och peakare (256byte sedan måste man byta bank om jag inte mins fel)...
AVR är helt anpassat till C och kompilator fanns till med före microkontrolern...
Pic gjordes med minsta möljiga resuser (kiselmäsigt) vilket resultera i en gammal konstrution (har funnis väldigt länge) dock inte dåligt men inte anpassat för högnivå språk heller ...
Pic finns i extremt strömsnålt versoner som dra några nW i aktivt läge vilket gör den till oöver vinliga i appliktioner där ström förbrukningen är en viktig faktor...
Så att välja enchips dator beror på vad som efter frågas...