Gå til innhold

Basic for AVR


Anbefalte innlegg

Jeg har knota en tid med Atmels AVR Studio, og lært litt og fått enkle ting som å skru av og på leds og andre helt elemntære ting. Jeg prøvde en gang basic til AVR, og en helt ny verden åpnet seg. Dette språket gjør jo at selv bestemor kan programmere mikrokontrollere. Helt genialt! Etter jeg prøvde basic har jeg aldri kodet i assembly. Flere som har hatt samme opplevelsen?

Lenke til kommentar
Videoannonse
Annonse

Hmm, jeg programerte på microkontrollere (basicstamp) når jeg gikk VK1 Elektronikk. Det var artig det. Men vanskelig og få det perfekt. :D

 

De vanskligste prog vi lagde til roboten var så mye og skrive at alle fikk ulik program, men alle gjorde det de skulle, bare litt andeledes oppførsel. :)

 

Skulle få 2 lysdioder til og blinke (D1 = off D2 = on / D1 = on, D2 = off, Og så videre), dette skulle skje når roboten traff en hindring. Først skulle roboten lyse på den siden han ble truffet og så blinke med begge 2.

 

Og så skulle han svinge unna hindringen.

 

Det var morro det. :love:

Tror jeg skal begynne med programmering igjen. :thumbup:

 

Jeg kan poste et eksempel. Må bare komme meg til stasjonæren min.

 

Har ikke hørt noe av det du nevner, men kan du sende meg en link?

Er Atmels AVR Studio et program der man programmerer mikrokontrollere?

Lenke til kommentar
Vel nå programmerer jeg i C jeg da... men må helt klart være enklere med basic enn med assembly. Mye lettere å få oversikten, og ikke minst endre på programmet for å tilpasse andre chipper, eller nye funksjoner...

7191141[/snapback]

 

Har du prøvd basic? Er det noen fordel ved å bruke C fremfor basic når det gjelder mikrokontrollere?

Lenke til kommentar

Har ikke erfaring med basic (vet ikke hvordan interrupt og sånt funker i basic) gitt, hvis man f.eks. har stk500 kortet kan man i C lage et enkelt program (bare for å vise grunnleggende C programmering).

 

#include <avr/io.h>

 

void main(void){

uint8_t a; /*8 bits int*/

DDRB=0xFF; /*Dette setter alle bittene i port B til ut*/

 

while(1){ /*Evig løkke*/

a=PINA; /*Leser fra port A*/

PORTB=a; /*Skriver til port B verdien fra port A*/

}

}

 

Må også ha en makefile (følger med en til winavr som du bare kan sette inn filnavnet i, f.eks. vi du lager test.c setter du inn i en linje i makefilen at target filen er test og så legger du denne filen i samme mappe som test.c. Kjør så cmd og cd til mappen og skriv make og så enter. Da får du laget en .hex fil som du bruker i AVR studio. Etter å ha programmert så er det bare å koble port A til switchene og port B til lysdiodene.

 

Holder selv for tiden på å skrive en kode for å lage klokke med litt ekstra funksjoner, går dog sakte fremover da jeg har mye annet å gjøre og, pluss at det er en stund siden jeg har programmert sist.

Lenke til kommentar
... kan man i C lage et enkelt program (bare for å vise grunnleggende C programmering).

 

#include <avr/io.h>

 

void main(void){

    uint8_t a; /*8 bits int*/

    DDRB=0xFF; /*Dette setter alle bittene i port B til ut*/

 

    while(1){  /*Evig løkke*/

        a=PINA;  /*Leser fra port A*/

        PORTB=a; /*Skriver til port B verdien fra port A*/

    }

}

 

Samme program i basic:

 

$regfile = "xxx.dat"

Config Porta = Input 'Setter PortA til inn

Config Portb = Output 'Setter PortB til ut

 

Do 'Evig loop

a = Pina 'Leser fra PortA

Portb = a 'Skriver til port B

Loop

End

 

 

Jeg har ennå til gode å se hva C kan gjøre for AVR, som basic ikke kan. Dessuten synes jeg basic er mye mer logisk og oversiktlig.

Lenke til kommentar
AVR studio er program for å programmere Atmel AVR mikrokontrollere ja. Såvidt meg bekjent støtter AVR studio kun assembly.

7191666[/snapback]

 

AVR studio støtter C også, legg inn avr-gcc (følger med WinAVR blant annet) så kan du programmere i C i avr studio også... Selv bruker jeg WinAVR og programmers notepad, bruker AVR Studio når jeg skal simulere koden jeg har skrevet (skulle bare hatt en J-TAG...)

 

Finnes mange språk du kan bruke ja, trur nok C er mest utbredt. ADA er et litt interessant språk synes jeg. har ikke prøvd det selv, men det minner veldig om VHDL som (kan) brukes når en skal lage integrerte kretser.

 

Følger forresten med mye annet en kan bruke med WinAVR, f.eks. avrdude og avr-gdb for å nevne noe...

 

Selv har jeg lyst på starterkitet til AVR32, men er "litt" i dyreste laget...

Lenke til kommentar

Selv har jeg lyst på starterkitet til AVR32, men er "litt" i dyreste laget...

7192658[/snapback]

 

Heisann

 

Hvis du klarer deg uten LCD så kommer det nye kit på slutten av året eller i begynnelsen av neste år som kommer til å koste mye mindre. Vent til de kommer, så kan du heller koble på et display senere hvis du vil :-)

 

-kristian

Lenke til kommentar

Skal du programmere noe i profesjonell sammenheng så er det C som gjelder. Mye mer kontroll og også et universelt språk uavhengig av hvilken platform du programmerer for. Ville nok heller anbefalt å lære det om du først skal lære noe. Finnes mye mer kildekode og fler du kan spørre om du lurer på noe. Som andre har nevnt finnes det gratis GNU compiler og du kan også kikke på Codevision f.eks som er gratis opp til 2kB. Ellers er det IAR som er den mest proffe (og dyreste) på C compiler til avr.

 

Et tips er dette firmaet http://www.olimex.com/ når det gjelder emulatorer, utviklingskort osv. Meget bra priser.

Lenke til kommentar

Ja, skjønner fordelen med C med at flere som bruker det, osv. Men jeg fikler bare med AVR på hobbybasis, så jeg tror nok jeg holder meg til basic foreløpig. Fordelen med basic, er jo at omtrent ikke trenger å læres, det meste er selvforklarende, og hvis ikke så er det bare å slå opp.

Lenke til kommentar

Selv har jeg lyst på starterkitet til AVR32, men er "litt" i dyreste laget...

7192658[/snapback]

 

Hva er det for noe?

7192846[/snapback]

 

AVR32 er den nye MCUen/DSPen fra Atmel, har i grunn ikke mye til felles med vanlig AVR bortsett fra navnet og at den er utvilket i trondheim

 

http://www.atmel.com/dyn/products/tools_ca...sp?tool_id=3918

Endret av Dr_VingTor
Lenke til kommentar

AVR er gøy å holde på å knote med, har selv bare brukt assembly, men må nok over på C etterhvert som jeg skal til å bruke timer/counter osv.

Jeg viste ikke det gikk å progge avr i basic, hva er fordelen med basic?

Selv har jeg altid hatt inntrykk av at C er det greieste.

 

AVR32 høres gøy ut med alle de mulighetene den har, jeg forstår ikke hvordan dem kan presse inn så mye gøy på en så liten brikke =)

Men som nevnt så er den enda ganske dyr, holder meg til 8bit kontrollrene frem til jeg har lært meg C iaffall.

Lenke til kommentar
AVR er gøy å holde på å knote med, har selv bare brukt assembly, men må nok over på C etterhvert som jeg skal til å bruke timer/counter osv.

Jeg viste ikke det gikk å progge avr i basic, hva er fordelen med basic?

Selv har jeg altid hatt inntrykk av at C er det greieste.

 

AVR32 høres gøy ut med alle de mulighetene den har, jeg forstår ikke hvordan dem kan presse inn så mye gøy på en så liten brikke =)

Men som nevnt så er den enda ganske dyr, holder meg til 8bit kontrollrene frem til jeg har lært meg C iaffall.

7196420[/snapback]

 

Jeg synes også AVR er gøy! Jeg holder på å lage en standalone RFID leser, og bruker basic. Jeg ser ingen grunn til å gå over til C. Men skal du begynne fra scratch etter assembly, så er det kanskje mer hensiktsmessig å lære C ettersom det er lettere å få hjelp.

Lenke til kommentar

Hei

 

Jeg synes også AVR er gøy! Jeg holder på å lage en standalone RFID leser, og bruker basic. Jeg ser ingen grunn til å gå over til C. Men skal du begynne fra scratch etter assembly, så er det kanskje mer hensiktsmessig å lære C ettersom det er lettere å få hjelp.

 

7196825[/snapback]

 

En god grunn til å bruke C er kanskje at det er mye lettere å finne dokumentasjon og eksempel kode, for eksempel så er jo alle application notes for AVR skrevet i C og der finner du jo kode for de meste.

 

C er ikke så veldig vanskelig bare man kommer igang.

 

I tillegg så vil vel C gi kunne gi deg litt høyere ytelse, da de fleste C compilere vil ha bedre optimalisering enn Basic ?

 

-kristian

Lenke til kommentar
I tillegg så vil vel C gi kunne gi deg litt høyere ytelse, da de fleste C compilere vil ha bedre optimalisering enn Basic ?

7196860[/snapback]

Var det jeg også trodde.

 

C er ikke så veldig vanskelig bare man kommer igang.

Det er vel slik med alle programmeringspråk, når man har kommet over et stadie der man ikke vet helt hva man holder på med så er det bare rett frem, slik var det med meg iallefall.

I begynneslen var det mest bare å sitte å dille med kode og prøve seg frem, og lese litt

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...