Avatar billede tdneVmo Nybegynder
26. september 2009 - 20:20 Der er 20 kommentarer og
1 løsning

Nogen der vil oversætte noget simpelt C kode til dansk? :)

Hej.

Jeg har noget C kode der skulle virke som en LED driver til en ATmega16 på sådan et STK500 kit.

Jeg forstår dog ikke helt hvorfor koden virker som den gør.

Der står forklaret hvad koden gør sådan ca., men jeg vil have at vide HVORFOR den gør det. Jeg vil have at vide hvad de forskellige funktioner og ord betyder.


Det nytter ikke noget at jeg blindt sidder og laver et eller andet program, baseret på noget teori der slet ikke er dybdegående nok.
Skal helst også vide hvorfor det virker.

Denne LED driver har jeg løsningen på, men nu skal jeg have lavet en switch driver også, og jeg kan simpelthen ikke se hvordan jeg skulle kunne lave den, udfra de informationer jeg har fået.

Her er link med en mappe til øvelsen, og facit på øvelsen, så man kan se hvordan det skal se ud:

http://tdnevmo.googlepages.com/LAB3.rar

Dette link er til den næste opgave:

http://tdnevmo.googlepages.com/lab4.rar

pdf dokumenterne er endten oplæg eller løsninger.

Tak på forhånd :)
Avatar billede bertelbrander Praktikant
27. september 2009 - 00:42 #1
Jeg tror at du skal prøve at være mere specifik for at vi skal have en fair chance for at hjælpe dig.
Hvad er det du er i tvivl om?
Avatar billede tdneVmo Nybegynder
27. september 2009 - 00:50 #2
Bertel. Hvad mener du?

Jeg skal have forklaret hvad der foregår i det der program, og hvorfor.

Der står i en bog at f.eks. "unsigned char" gør det og det. Der står ikke hvorfor. Uden jeg ved det, kan jeg ikke støbe nye programmer sammen, for jeg kan ikke se logikken i det.
Avatar billede tdneVmo Nybegynder
27. september 2009 - 01:09 #3
Hvor kommer det her f.eks. fra:
void initLEDport(unsigned char init_pattern);
void writeLEDpattern(unsigned char pattern);
void turnOnLED(unsigned char led_nr);
void turnOffLED(unsigned char led_nr);
void toggleLED(unsigned char led_nr);
unsigned char LEDon(unsigned char led_nr);
unsigned char LEDstatus();

Er det sådan nogle standardfunktioner der ligger i AVR studio?
Avatar billede Slettet bruger
27. september 2009 - 01:12 #4
Det du beder os om lige nu, er at lære dig C i tre linjer.
Hvis du gerne vil kunne forstå koden kan du starte fra bunden.
Der er en masse gode C bøger på biblioteket :)
Avatar billede tdneVmo Nybegynder
27. september 2009 - 01:29 #5
Bøgerne er lort synes jeg :/ Kunne også godt tænke mig at det var dansk, for det er iriterende at skulle lære teknisk engelsk OG programmering - Altså to sprog man ikke kender - på samme tid. Det er sku lidt forvirrende.
Avatar billede bertelbrander Praktikant
27. september 2009 - 01:31 #6
Jeg mener ikke at dette er stedet for at finde en forklaring på hvad en "unsigned char" er. Søg på nettet og du vil finde 1000000 forklaringer der er bedre end noget jeg kan finde på. Jeg vil gerne hjælpe dig med specifikke spørgsmål, men jeg har ikke tid til at lære dig helt basal C.

Det er sandsynligt at de funktioner du nævner er standard AVR studio funktioner.
Avatar billede tdneVmo Nybegynder
27. september 2009 - 02:16 #7
Jeg ved godt hvad unsigned char betyder, men jeg kan ikke se hvad det bliver brugt til i dette sammenhæng, for der står ingen steder noget om hvad f.eks. "void initLEDport" kommer fra.

Det er vel funktioner knyttet til AVR studio, men jeg kan ikke finde info om de funktioner, og hvorfor man lige skal skrive "unsigned char init_pattern" Inde i funktionen eller hvad "PORTC = PORTC | mask;" skal gøre godt for.

Jeg vil gerne forstå hvad de her funktioner gør, og hvorfor de skal være der.
Avatar billede bertelbrander Praktikant
27. september 2009 - 02:31 #8
Det er alt sammen helt elementære C programmerings spørgsmål, jeg er ret sikker på at din lærebog forklarer hvordan funktioner virker, hvordan du kalder en funktion og hvordan du laver en funktion. Lærebogen fortæller sandsynligvis også om funktioners parametre.

Jeg har stadig ikke tid til at fortælle dig om helt grundlæggende C programmering, det gør lærebogen, eller en af 1000 bøger der er skrevet om C, meget bedre end mig.
Avatar billede tdneVmo Nybegynder
27. september 2009 - 02:46 #9
Kunne godt tænke mig noget stuff på dansk, fordi det teknisk engelsk er lidt svært at forstå i forvejen. vil godt have en bog hvor jeg bare skal koncentrere mig om C, og ikke om min engelsk/dansk ordbog.
Avatar billede Slettet bruger
27. september 2009 - 14:02 #10
En dansk grundbog i C/C++:
http://kortlink.dk/6z8d
Avatar billede tdneVmo Nybegynder
27. september 2009 - 15:18 #11
Ok tak.
Avatar billede Slettet bruger
27. september 2009 - 15:37 #12
Jamen, selv tak :-)
Avatar billede dinirex Nybegynder
01. oktober 2009 - 22:24 #13
Haha... Der er vidst en der studere på IHA? Hvorfor i alverden spørg du dog ikke Henning? Den lærebog i får udleveret giver da ganske gode eksempler på hvorledes tingene fungere og hvordan du skal benytte dem.
Avatar billede dinirex Nybegynder
01. oktober 2009 - 22:29 #14
Sorry for double post, men kunne ikke finde rediger knappen.

Er du elektro eller IKT? Hvis du er elektro, hvilket jeg ville gætte på du er, så har det ikke den store betydning for dig, om du kan C (ikke at sige, at det er yderst nyttigt at kunne), men du kommer til at bruge det minimalt og eksamen er virkelig nem. På 3. semester kommer i til at lære C#.
Avatar billede tdneVmo Nybegynder
01. oktober 2009 - 22:34 #15
elektro/stærkstrøm.

Forløbet er gået alt for hurtigt, til at folk kunne følge med, så jeg skal lige have det forklaret bedre :) Det kunne så være at der var en der lige ville kigge noget kode igennem. Jeg er ikke den eneste der har det problem, og jeg frygter eksamen :S
Avatar billede dinirex Nybegynder
04. oktober 2009 - 15:21 #16
Hvis du har været til undervisningen og har prøvet at lave øvelserne, så skulle der ikke være problemer med at bestå.

78% af vores årgang bestod CPAA eksamen med et 12 tal, så du har ikke rigtig det store at frygte. I opgaverne står der hvilke registre du skal skrive i, og det meste er faktisk lavet, du skal blot connecte brudstykkerne.
Avatar billede tdneVmo Nybegynder
04. oktober 2009 - 22:05 #17
dinirex. Ja, det synes jeg er svært.. :(
Avatar billede dinirex Nybegynder
05. oktober 2009 - 19:46 #18
De begreber du skal bruge er:

Funktioner
Variabler
Løkker

Disse ting ved jeg i er blevet undervist i. Hvis du ikke har forstået tingene, så skal du stille spørgsmål, og har du ikke gjort det, er det altså din egen skyld.

Men kort forklaret kan du lave dine egne funktioner eller du kan benytte nogle funktioner fra standard biblioteker. Funktioner er yderst nyttige til at genbruge kode.

hvis vi ser på de funktioner i skal anvende i øvelsen, så er de user defined. Altså er det f.eks. Henning der har oprettet dem.

funktionen: void writeLEDpattern( unsigned char pattern)

void: er retur typen, void betyder at der ikke bliver sendt noget tilbage fra funktionen, retur typer kan være variabler som int, char, float etc.

writeLEDpattern: er navnet på funktionen.

unsigned char pattern: er en variable af typen unsigned char, som kan indeholde en værdi fra 0 - 255 da den er i unsigned ( ikke negativ) "mode". variablens navn er pattern.

Denne funktion skal bruges til at tænde en LED. Den modtager et pattern som skal være af typen unsigned char.

Hvis du forestiller dig du har sendt et pattern der hedder: 0b10000001 så bevirker dette at LED 7 og 0 skal lyse.

Eftersom at LEDS på STK500 er aktiv lav, så skal dette vendes om, da det ellers ville tænde 6,5,4,3,2,1 da disse har værdien 0.

For at vende værdien til det modsatte kan du bruge tegnet ~

for at skrive til en port, gør du følgende:

PORTC = ~pattern;

Nu vil PORTC være lig med: 0b01111110 hvis vi tager udgangspunkt i forrige eksempel.
Avatar billede tdneVmo Nybegynder
05. oktober 2009 - 22:34 #19
Alt det her ved jeg, men mit problem er, at jeg har svært ved at opbygge mit eget program selv. Jeg kan ikke tænke mig til hvad der skal stå for at få min stk til at gøre noget bestemt.

Selvom jeg ved hvad funktioner er, hvad de gør, osv. så har jeg svært ved at se hvad jeg skal skrive stadigvæk.

Hvis der er en kode, og jeg får forklaret hvad den gør, så kan jeg godt forstå det, men jeg skal have flere eksempler for ligesom at kunne se, hvordan jeg skal opbygge et program.
Avatar billede dinirex Nybegynder
06. oktober 2009 - 13:29 #20
Jamen det er jo et alment problem af forståelse. Det er som, hvis du er sproglig har du ikke nemt ved matematik. Hvis din forståelse ikke kommer naturligt, har du naturligt svært ved programmering. Vi kan ikke alle være lige gode ;)
Avatar billede tdneVmo Nybegynder
06. oktober 2009 - 14:43 #21
Jamen hvad er jeg så god til? :)

Kan være jeg bare er lige dårlig over hele linjen, mjehmjeh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB

Politiets Efterretningstjeneste

DevOps softwareudviklere til PET

Sentia Denmark A/S

Service Delivery Manager

Magasin

IT-projektleder

Udlændinge- og Integrationsministeriet

Contract Managers til kontrakt- og leverandørstyring

Udviklings- og Forenklingsstyrelsen

Controller til økonomi og compliance