Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  30 5631
Guide: Kom i gang med AVR

Lager denne guiden for alle som er interessert i å komme i gang med mikrokontrollere. Selv om jeg ikke er pro, håper jeg denne veldig enkle innføringen til AVRs hjelper noen på vei.

Kommer til å bruke WinAVR og AVR Studio 4 under windows. Setup av toolchain til
Mac og
Linux/Unix.


Hardware

Det du trenger av hardware, er en ISP-programmerer til å programmere mikrokontrolleren, og en mikrokontroller selvfølgelig.

For å gjøre det enkelt, kjøpte jeg et devboard med ATMEGA128 fra ebay. Kostet ikke mer enn rundt $30. Og med ISP-programmerer kommer du på rundt $50 (~300kr), noe de fleste har råd til.


ATMEGA128 devboard. USB for strøm, 8 LEDs, 8 push-buttons + Reset, JTAG- og ISP-kontakt, 2x RS232-porter, 16MHz krystall.


Billig AVR-ISP MK II-klone fra ebay.


Software (Windows)

Last ned og installer siste versjon av AVR Studio 4, som er IDEet vi skal bruke.

Last ned og installer siste versjon av WinAVR og installer under «C:/WinAVR». Denne inneholder bla. kompileren, GNU GCC, for C og C++.

Installer drivere for ISP-programmereren fra CDen som mest sannsynlig var med.

Så er det bare å koble ISP-programmereren til devboardet og PCen.



Skrive Kode

Start med å åpne Avr Studio 4 og velg New Project.


Om du har installert WinAVR riktig, vil du få opp AVR GCC under Project type. Velg AVR GCC, finn på et passende navn på prosjektet og trykk Next.


Velg AVR Simulator 2 og type AVR du bruker. I mitt tilfelle ATMEGA128. Trykk så Finish.

Sjekk at ISP-programmereren er koblet til skikkelig, både til PC og til devboard. Og at AVRen er tilkoblet en strømkilde. Som i mitt tilfelle er fra PCen.

Gå til Tools->Program AVR->Connect.


Velg STK500 or AVRISP under Platform, og Auto under Port. Og trykk Connect.


Under fanen Main, sjekk at rett type AVR er valgt og trykk Read Signature.


Om du får opp en signatur, har du kontakt med AVRen og kan begynne å programmere den. Hvis du får feilmelding, sjekk at ISP-frekvensen er mindre enn ¼ av klokkefrekvensen til AVRen. Du kan endre den ved å trykke Settings..

Kryss ut ISP-vinduet, for nå kan vi skrive kode. Men først litt grunnleggende om digitale innganger og utganger på AVRen. (Siden dette bare er en intro til AVR, tar jeg ikke med ADC, timers, PWM, interupts ol.)

AVRen har flere såkalte porter, som (som oftest) er en gruppe av 8 I/O-pinner.
Pinnene på en AVR er som regel både innganger og utganger. Men dette må vi fortelle AVRen i programmet. Derfor har vi 3 såkalte register for hver port. Hvert register inneholder 8 bits, som enten er av eller på. Og disse kontrollerer da egenskapene til pinnene som hører til den porten.

Hver port har en egen bokstav, og antall porter kommer an på hvilken AVR du bruker. Derfor skriver man som regel x i stedet for portbokstaven når det ikke spiller noen rolle hvilken port det er snakk om. Noen pinner kan har flere funksjoner enn digitale innganger/utganger, men det tar jeg ikke for meg nå.

Det første er DDRx. Som står for Data Direction Register, og bestemmer om pinnene skal være utganger eller innganger. For å gjøre det litt lettere å forstå, har jeg prøvd å lage en enkel illustrasjon.


0 betyr inngang, og 1 betyr utgang. Så det vil si at på tegningen her er pin 0,4,5 og 7 definert som innganger, og 1,2,3 og 6 definert som utganger.

Det neste registeret er PORTx. Om pinnen er satt som utgang i DDRx, vil du med å skrive til PORTx skru av og på utgangen. Om pinnen er satt som inngang i DDRx, vil du med å skrive til PORTx aktivere eller deaktivere de internet pull-up-motstandene.

Det siste registeret er PINx. Dette brukes til å lese av pinnen om den er satt som inngang i DDRx.

Disse registerene kan virke veldig forvirrende i begynnelsen, men man skjønner fort hva de er til og hvordan de brukes etter en kort stund.

Endelig kan vi skrive kode!
sFilez's Avatar
Trådstarter
Vi skriver i C (C++ støttes delvis, liste over ting som ikke støtes finnes i WinAVR-dokumentasjonen), så de som har skrevet C eller C++ har en klar fordel. Programmeringskunnskaper generelt er en stor fordel.

La oss begynne med et tomt program for å se strukturen i det.


Kode

#include <avr/io.h>

int main(){
	while(1){
		//Det er her det skjer
	}
}
#include <avr/io.h>
Inkluderer header-filer for den valgte AVRen. Bla. Definisjonene på portene.

int main(){
De som har skrevet i et C-språk kjenner nok igjen denne. Det er da starten på programmet vårt.

while(1){
//Det er her det skjer
}

Dette er en klassisk while-løkke. Siden 1 er sant, vil denne løkken gå evig. Og det er nemmelig inn i her vi skriver mesteparten av koden.

}
Her lukker vi programmet.
«Du glemte å returnere noe», er det nok mange som roper høyt. Men det er ikke nødvendig, da vi aldri kommer hit uansett. Du kan selvfølgelig returnere noe, om det plager deg. Men kompileren gir ikke advarsel på det, så jeg ser ikke noen grunn til å gjøre det.

La oss kompilere det til maskinkode AVRen kan forstå og overføre det til den. Gå til Build->Build eller trykk F7.


Nå er prosjektet kompilert, og vi har en .hex-fil som AVRen skal få. Gå til Tools->Program AVR->Connect, og gjør som vi gjorde før. Velg fanen Program.


Trykk på knappen, som er markert blå i bildet over, og finn .hex-filen som ligger i <ProsjektNavn>\default.


Trykk så Program. Og om alt gikk som det skulle, vil du ikke få noen feilmelding, og tekstboksen nederst vil vise noe som dette:

Kode

Getting isp parameter.. SD=0x01 .. OKOK
Reading FLASH input file.. OK
Setting mode and device parameters.. OK!
Entering programming mode.. OK!
Erasing device.. OK!
Programming FLASH ..      OK!
Reading FLASH ..      OK!
FLASH contents is equal to file.. OK
Leaving programming mode.. OK!
Nå som ting fungerer, kan vi skrive en kode som gjør noe. Det koden skal gjøre er å telle fra 0 til 255 binært og hvise dette ved å skru av/på lysdiodene på port c.

Kode

#define F_CPU 16000000	//Klokkefrekvens

#include <avr/io.h>
#include <util/delay.h>	//Header for _delay_ms()

int main(){
	DDRC = 0xFF;		//Sett alle pinner på PORTC til utganger
	PORTC = 0x00;		//Sett alle pinner på PORTC til 0 (av)
	int tall = 0;		//Variabel som holder tellingen

	while(1){
		_delay_ms(500); //Vent 500ms
		PORTC = tall++; //Sett PORTC til tall, og øk tall med 1
		if(tall>=255)	//Hvis tall er større eller lik 255 (0xFF)
			tall = 0;	//Sett tall til 0
	}
}
Jeg har kommenter de viktigste delene av koden, men går alikevell gjennom noen.

DDRC = 0xFF;

Dette er registeret jeg skrev om lengre opp, som bestemmer om det er utgang eller inngang.
0xFF er skrevet i hex, og dette er den mest vanlige måten å skrive det på. 0X sier at det er hex, og FF betyr 255 desimalt. Men den letteste måten å forstå det på, er å oversette det til binært, som blir:
11111111. Altså, alle pinnene er utganger. Vi kunne selvfølgelig skrevet 0x5A feks., som blir 01011010 binært. Da ville pinne 0,2,5 og 7 vært innganger, og pinne 1,3,4 og 6, vært utganger.


PORTC = 0x00;

Her setter vi PORT-registeret til port c til 0x00, som tilsvarer 00000000 i binært. Altså alle pinne av.


_delay_ms(500);

Denne funksjonen kommer fra delay.h som vi inkluderte i starten. Ved å gi den 500, vil den stoppe mikrokontrolleren i 500 ms, altså et halvt sekund før den går videre. Dette er ikke den beste måten å gjøre det på, men i dette tilfellet går det bra.


PORTC = tall++;

Her setter vi port c til variabelen tall, og øker den med 1. Neste gang vil den sette port c til 1, så 2, 3, 4..

if(tall>=255)
tall = 0;

Siden vi har 8 pinner, kan vi vise maks 255 binært, derfor setter vi tall til 0 når vi kommer til 255, og alt begynner på nytt.

Et lite filmklipp til og med.
http://www.youtube.com/watch?v=p7pis0TqkSQ


Det var alt for denne gangen. Håper noen for utbytte av denne guiden. Og hvis det er spørsmål eller tips til forbedringer, så gjerne ta det i denne tråden eller send en PM.
All over the clock
Mr. Meow's Avatar
Bra guide! Fikk lyst til å begynne å programmere mikrokontrollere selv nå som jeg ser hvor lite som skal til.

Tenkte bare å slenge med en link til The C Book. En guide til C som er veldig grundig men samtidig enkel å forstå for oss som ikke har programmert noe før.
sFilez's Avatar
Trådstarter
Var litt for rask, og glemte å legge ved linker og forklaringer på noen forkortelser.


Linker

AVRFreaks
Det største AVR-forumet på internett. Her finner du alt av tutorials, prosjekter og kunnskapsrike folk. Bare husk å si takk når du får hjelp.

SparkFun
Veldig bra side å kjøpe komponenter fra. Mange morsomme dingser, så det er lett å bruke mer enn man hadde tenkt. De har også et brukbart forum.

Ebay
På ebay finner man alt.

Atmel Application Notes (8-Bit RISC)
Her finner du offisielle applikasjoner fra Atmel. Masse nyttig, men det kan hende du må lete litt før du finner det du er ut etter.

AVR Fuse Calculator
Når du kan det grunnleggende, er denne veldig handy.


Forklaringer på forkortelser

ISP - In System Programming. Programmering av mikrokontroller mens den står i applikasjonen den skal være i.

AVR - Noen sier det står for Advanced Virtual RISC, andre sier Alf (Egil Bogen) and Vegard (Wollan) 's Risc processor. Og Atmel selv, sier det ikke.

JTAG - Joint Test Action Group. JTAG-programmerere er en del dyrere enn IPS-programmerere, men da kan du debugge AVRen i realtime, istedet for å simulere det på PCen.

Fuses - Dette er registere som feks. sier om ISP eller Brown-Out Detection skal være aktivert eller ikke.
Sist endret av sFilez; 15. juni 2009 kl. 00:54.
Det er her var bra. Godt er det flere som starter og kune litt elektronik. samme kunskap kan brukes til andre ting :-)
håper ikke det her blir siste guide'en din.
sFilez's Avatar
Trådstarter
Kult at du likte den ranvik. Skal prøve å få laget flere guider fremover forhåpentligvis. Tar gjerne å lager på request om noen lurer på noe spesifikt.
ta å lag en smud circuit bending guide ^^ var på loppis i helga, så skal jeg på class olson å kjøpe loddebolt i dag
Bra guide, ja

skepsis: En generell circuit bending guide blir vel strengt tatt litt vanskelig å skrive.. Modifisering av en krets avhenger av hvordan kretsen er bygd opp i utgangspunktet, hva den egentlig skal gjøre, og hva du vil at den skal gjøre i steden. Hvis du bare lodder om og kortslutter tilfeldig vil du nesten garantert bare ende opp med en krets som ikke fungerer. Hvis du har en spesiell hensikt så er det bare generell elektronikkunskap som gjelder, er jeg redd.
Ellers så er jo Arduino en enkel og billig måte og komme igang med AVR mikrokontrollere på.
I tillegg til en datamaskin, så trenger du
- et Arduino kompatibelt kort (det finnes mange kloner, og noen av dem er billigere)
- en usb kabel.
- IDE (utviklingssoftware) laster du ned fra nettstedet til Arduino.
▼ ... noen måneder senere ... ▼
Arduino kan bli litt dyrt om du skal lage mange prosjekter og ønsker og ha dem i uavhengig drift.
Da må du kjøpe et nytt Arduino kitt for vært prosjekt.

Lær deg heller og programmere AVR og bygg kretser rundt det.
Arduino har jo kort hvor du kan plukke ut mikrokontrolleren, så det funker jo like bra det.
Sitat av wanna-b Vis innlegg
Arduino har jo kort hvor du kan plukke ut mikrokontrolleren, så det funker jo like bra det.
Vis hele sitatet...
Altså, det er bedre og lære seg og krype før man prøver og gå.
Er ikke tvil om at det går, men tror at en må forholde seg til et snevert utvalg av µCer.

Atmel har et veldig stort utvalg av µCer, Atmega8, Atmega16, AVR32, ARM, ATtiny osv.
Under disse er det enda flere, og disse har ekstremt mye forskjellige intrigerte godsaker f.eks. som DAC, ACD, RS232 osv osv.

Det hele kommer vel an på hvor lang en ønsker og gå og etter behov, jeg mener at det er like greit og lære seg alt fra scratch og bygge på det derifra får det vil tillate mye mer en Arduino.
Sitat av Skummetmelk Vis innlegg
Altså, det er bedre og lære seg og krype før man prøver og gå.
Er ikke tvil om at det går, men tror at en må forholde seg til et snevert utvalg av µCer.

Atmel har et veldig stort utvalg av µCer, Atmega8, Atmega16, AVR32, ARM, ATtiny osv.
Under disse er det enda flere, og disse har ekstremt mye forskjellige intrigerte godsaker f.eks. som DAC, ACD, RS232 osv osv.

Det hele kommer vel an på hvor lang en ønsker og gå og etter behov, jeg mener at det er like greit og lære seg alt fra scratch og bygge på det derifra får det vil tillate mye mer en Arduino.
Vis hele sitatet...
Trodde du siktet til at arduino kort har fastmontert uC
Sitat av wanna-b Vis innlegg
Trodde du siktet til at arduino kort har fastmontert uC
Vis hele sitatet...
Beklager, dårlig formulering.
Var det jeg gjorde i begynnelsen men tok vist feil.
Men Arduino er AVR µC med en spesiell bootloader.
▼ ... mange måneder senere ... ▼
Har tenkt å prøve meg litt frem med mikrokontroller på lavt nivå.

har bestilt følgende http://shop.tuxgraphics.org/electron...avrusb500.html
og http://shop.tuxgraphics.org/electron...l_atmega8.html

Vil dette være nok til feks å lage noe så enkelt http://www.tuxgraphics.org/common/im...ircuit-led.pdf

Eller er det noe mere harware jeg åpenbart trenger ? Når jeg er ferdig med å lodde ihop avrUSB500v2

Har loddebolt resistorer led, og ikke helt ubetydelige mengder komponenter.

På forhånd takk
Det holder det, men du trenger strømforsyning til selve kretsen på 4-5 volt som det står. Eventuelt tre AA eller AAA batterier i serie.
Sist endret av wanna-b; 5. november 2010 kl. 23:19.
Sitat av wanna-b Vis innlegg
Det holder det, men du trenger strømforsyning til selve kretsen på 4-5 volt som det står. Eventuelt tre AA eller AAA batterier i serie.
Vis hele sitatet...
Har godt om med strømforsyninger, så det går greit.
Ikke noen som kommer på andre ting ?
brytere, ldr ,displayer, radiomoduler, krystall/resonator(?) osv.

Hvis du bare skal blinke led og ingenting annet vil jeg tro du har det meste du trenger, men hvis du har lyst til å lære og ha det gøy er det fint med ekstra leketøy.
Sitat av PyrONics Vis innlegg
brytere, ldr ,displayer, radiomoduler, krystall/resonator(?) osv.

Hvis du bare skal blinke led og ingenting annet vil jeg tro du har det meste du trenger, men hvis du har lyst til å lære og ha det gøy er det fint med ekstra leketøy.
Vis hele sitatet...
I utgangspunktet var det bare å styre flere LED. Går det greit er jo mulighet for å drive SSR.

Ellers har jeg en god del av det du nevner ovenfor
▼ ... noen uker senere ... ▼
Flott guide. Har tenkt og bestille den samme kontrolleren.

Er det mulig og dimme LED lys med denne?

Hva annet kan man bruke den til?
Sitat av Glenni Vis innlegg
Flott guide. Har tenkt og bestille den samme kontrolleren.

Er det mulig og dimme LED lys med denne?

Hva annet kan man bruke den til?
Vis hele sitatet...
Jepp, du kan bruke PWM (Power Width Modulation) til å dimme LED's. Enkelt forklart kuttes strømmen til LED'en, med en frekvens som gjør at vi ikke ser at lyset faktisk slåes på/av. Den enkleste løsningen for dette vil nok være en 555-timer, hvis det kun er dimming av LED's du skal bruke den til.

Sånn ellers kan man bruke mikrokontrollere til det meste, med unntak av å få verdensherredømme
Sitat av XaRn Vis innlegg
PWM (Power Width Modulation)
Vis hele sitatet...
Flisespikkeri: PWM = Pulse Width Modulation.
Sitat av Provo Vis innlegg
Flisespikkeri: PWM = Pulse Width Modulation.
Vis hele sitatet...
Oioi, det er jeg absolutt klar over. Jeg er ikke ferdig elektronikkutdannet enda, så jeg får skylde på det
Hvor får man tak i en 555 timer? Og hvordan programmeres denne?
Sitat av XaRn Vis innlegg
Oioi, det er jeg absolutt klar over. Jeg er ikke ferdig elektronikkutdannet enda, så jeg får skylde på det
Vis hele sitatet...
Fort gjort.

Sitat av Glenni
Hvor får man tak i en 555 timer? Og hvordan programmeres denne?
Vis hele sitatet...
Den programmeres ikke. Det er timer-IC som du fester eksterne komponenter til for å bruke den som en one-shot-timer eller oscillator (kalt henholdsvis monostabil og astabil). Det finnes utallige guider på nettet om hvordan den kobles. Den fås kjøpt f.eks. på elfa.
▼ ... over en uke senere ... ▼
Sitat av sFilez Vis innlegg
Nå som ting fungerer, kan vi skrive en kode som gjør noe. Det koden skal gjøre er å telle fra 0 til 255 binært og hvise dette ved å skru av/på lysdiodene på port c.

Kode

#define F_CPU 16000000	//Klokkefrekvens

#include <avr/io.h>
#include <util/delay.h>	//Header for _delay_ms()

int main(){
	DDRC = 0xFF;		//Sett alle pinner på PORTC til utganger
	PORTC = 0x00;		//Sett alle pinner på PORTC til 0 (av)
	int tall = 0;		//Variabel som holder tellingen

	while(1){
		_delay_ms(500); //Vent 500ms
		PORTC = tall++; //Sett PORTC til tall, og øk tall med 1
		if(tall>=255)	//Hvis tall er større eller lik 255 (0xFF)
			tall = 0;	//Sett tall til 0
	}
}
Jeg har kommenter de viktigste delene av koden, men går alikevell gjennom noen.

DDRC = 0xFF;

Dette er registeret jeg skrev om lengre opp, som bestemmer om det er utgang eller inngang.
0xFF er skrevet i hex, og dette er den mest vanlige måten å skrive det på. 0X sier at det er hex, og FF betyr 255 desimalt. Men den letteste måten å forstå det på, er å oversette det til binært, som blir:
11111111. Altså, alle pinnene er utganger. Vi kunne selvfølgelig skrevet 0x5A feks., som blir 01011010 binært. Da ville pinne 0,2,5 og 7 vært innganger, og pinne 1,3,4 og 6, vært utganger.


PORTC = 0x00;

Her setter vi PORT-registeret til port c til 0x00, som tilsvarer 00000000 i binært. Altså alle pinne av.


_delay_ms(500);

Denne funksjonen kommer fra delay.h som vi inkluderte i starten. Ved å gi den 500, vil den stoppe mikrokontrolleren i 500 ms, altså et halvt sekund før den går videre. Dette er ikke den beste måten å gjøre det på, men i dette tilfellet går det bra.


PORTC = tall++;

Her setter vi port c til variabelen tall, og øker den med 1. Neste gang vil den sette port c til 1, så 2, 3, 4..

if(tall>=255)
tall = 0;

Siden vi har 8 pinner, kan vi vise maks 255 binært, derfor setter vi tall til 0 når vi kommer til 255, og alt begynner på nytt.
Vis hele sitatet...
Sånn ca hit gikk det greit, men må kanskje ha det litt inn med teskje ?
Siste del av andre bolk fra sFiles
Skulle denne programsnutten gå ann å kjøre ?

Er den gule pila her en failmelding ? http://fjelltur.org/avr/avr.jpg

Skal programmene i kretsen kunne kjøre men den er tilkoblet programmer og PC, eller må den kobles fra ?

Litt mange spørsmål
Sist endret av asmika; 7. desember 2010 kl. 17:13.
Sitat av asmika Vis innlegg
Sånn ca hit gikk det greit, men må kanskje ha det litt inn med teskje ?
Vis hele sitatet...
Hva syns du var vanskelig å forstå?

Sitat av asmika Vis innlegg
Er den gule pila her en failmelding ?
Vis hele sitatet...
Nei, ser ut som at du har startet AVR-simulatoren. Dvs. at du kan se hvordan programmet vil oppføre seg om det hadde vært på en AVR. Den gule
pilen viser hvor i programmet du er. Så kan du feks. steppe gjennom programmet og overvåke forskjellige registere, minne osv.

Sist jeg bruke AVR-simulatoren var det noen bugs med timere, så ikke stol
100% på den.

Sitat av asmika Vis innlegg
Skal programmene i kretsen kunne kjøre men den er tilkoblet programmer og PC, eller må den kobles fra ?
Vis hele sitatet...
Det går som regel greit å ha den på, men om du bruker noen av programmeringspinnene til noe i kretsen (feks SPI) så bør du koble den av, eller sette inn en motstand i serie med MISO, MOSI og SCK.
Sitat av sFilez Vis innlegg
Hva syns du var vanskelig å forstå?
Vis hele sitatet...
Starter programmet i kretsen helt uten videre når HEX fila er kommet på plass, og videre såsnart kretsen blir spenningssatt, eller trenges det er " run " fra ettellerannet.
.

Sitat av sFilez Vis innlegg
Nei, ser ut som at du har startet AVR-simulatoren. Dvs. at du kan se hvordan programmet vil oppføre seg om det hadde vært på en AVR. Den gule
pilen viser hvor i programmet du er. Så kan du feks. steppe gjennom programmet og overvåke forskjellige registere, minne osv.

Sist jeg bruke AVR-simulatoren var det noen bugs med timere, så ikke stol
100% på den.
Vis hele sitatet...
Var ikke planlagt å starte simulator, får se litt mere på innstillinger

Kan det tenkes att fila ble sendt til simulatoren istedet for kretsen ?
Hvordan sjekker jeg sånt ?
Sist endret av asmika; 7. desember 2010 kl. 19:42.
Programmet starter automatisk. Trenger ingen ekstern "Run"-kommando.

Vil tro at du trykket på "Play"-knappen (Pil til høyre). Da startes simulatoren (eller debugging om du har feks. JTAG).
Så om du vil ha over hex-fila til AVRen må du gjøre som beskrevet i førstepost:

Tools->Program AVR->Connect...

Velg type programmerer og port (evt. baud rate om det er serial)

Gå til "Main"-tabben, velg AVR-modellen du skal programmere, trykk så "Read Signature".
Om du da får opp 3 bytes i hexadecimal har du kontakt med AVRen.

Så går du til "Program"-tabben, velger hex-fila under "Flash"-rammen/delen og trykker program
Veldig flott, men du kunne ha lagt til hva AVR er for noe(for dummies like me)
: )
Sitat av sFilez Vis innlegg

Så går du til "Program"-tabben, velger hex-fila under "Flash"-rammen/delen og trykker program
Vis hele sitatet...
Så langt gikk alt greit, men kunne ikke se noe tegn til att kretsen startet opp programmet. dvs, ingen blinkende led etter att jeg hadde lastet opp ledtest_pre.hex

Skal kretsen starte så snart hex fila er på plass ?

Er ikke riktig sikker på om det burde finnes en fil som bare heter ledtest.hex
Kan jo også hende noe er galt på kortet, fra utgangen, om til diode, via motstand, får sjekke nærmere

Kjapp test med multimeter, og syndebukken avslørt, manglende kontakt mellom LED og motstand. Ny lodding og blinking i gang. Nye feil og problemer kommer sikkert når jeg får startet med videre programerin.

Takk sålangt, spesielt til sFilez

Sitat av daaa Vis innlegg
Veldig flott, men du kunne ha lagt til hva AVR er for noe(for dummies like me)
: )
Vis hele sitatet...
http://en.wikipedia.org/wiki/Atmel_AVR