Dr_VingTor Skrevet 17. august 2010 Del Skrevet 17. august 2010 Hva gjør du her ? " DDRA |= (1 << PA0) | (1 << PA1) | (1 << PA2) | (1 << PA3); DDRB |= (1 << PB0) | (1 << PB1) | (1 << PB2); " Kan ikke avr koder.. Kun C og litt annet.. Dette er C. PA* og PB* er parametre fra en header fil. De beskriver hvilke bit i registrene som kontrollerer en bestemt funksjonalitet. Om jeg ikke tar helt feil så er PA0 = 0, PA1 = 1, osv. DDR* er et register i kontrolleren (Data Direction Register A/B). << betyr skift til venstre, så 1 << PA0 er 1, 1 << PA1 er 2, 1 << PA3 er 4, osv. | er logisk eller, så 1 | 2 | 4 blir 7 (ikke +, du må tenke binært her) |= er logisk eller med venstre og høyre side som argumenter, og svaret lagres så i venstre side igjen. Lenke til kommentar
CoolBeer Skrevet 17. august 2010 Forfatter Del Skrevet 17. august 2010 Fikk lysdioder i dag :O Venter enda på motstandene i samme størrelse, dette kan bli interessant - Kolbjørn Lenke til kommentar
Dr_VingTor Skrevet 17. august 2010 Del Skrevet 17. august 2010 Hvilken størrelse er det der da? 0603? Går som regel greit å lodde det, er for det meste det jeg bruker i dag i alle fall (der det er mulig). Har sett folk lodde 0402 for hånd også, men da begynner det å bli vanskelig. Trenger mikroskop for å få det ordentlig til da. Lenke til kommentar
CoolBeer Skrevet 17. august 2010 Forfatter Del Skrevet 17. august 2010 Hvilken størrelse er det der da? 0603? Går som regel greit å lodde det, er for det meste det jeg bruker i dag i alle fall (der det er mulig). Har sett folk lodde 0402 for hånd også, men da begynner det å bli vanskelig. Trenger mikroskop for å få det ordentlig til da. Neida, er 0805, ikke sinnsykt smått med andre ord. Blir mitt første forsøk på smd men skal vente på motstandene som skal i serie med lysdiodene før jeg setter igang. Vurderer å bestille en ordentlig loddestasjon, hakko 936 eller lignende, fant en plass til ca 80 dollar, men de skulle ha 50 dollar i frakt. Vi får se, har lyst på et oscilloskop også. Fikk uart til å funke! - Kolbjørn Lenke til kommentar
CoolBeer Skrevet 17. august 2010 Forfatter Del Skrevet 17. august 2010 Ny versjon av tiny24/44/84 headeren, nå med resetknapp: Er denne jeg skal montere smd komponentene på - når jeg får motstandene - blir horelys under med andre ord - Kolbjørn Lenke til kommentar
Dr_VingTor Skrevet 17. august 2010 Del Skrevet 17. august 2010 Kom pare på at jeg hadde en litt mer fancy måte enn hva du brukte her for å traversere stringen din og for å sende den. Mener det var noe slikt: void print_string(uint8_t* str) //print string { while (*str) barrel(*str++); //hadde vell kalt den for put_char() eller noe jeg da... } ... en plass i main() ... char text[] = "hello world\n\r"; print_string(text) Kanskje ikke store forskjellen, men du slipper å holde orden på hvor lang stringen er, du trenger ikke ha noen ekstra buffer, og du kan gjenbruke samme funksjonen for alle stringene du skal sende. Hvis du ikke kan å bruke pointere i C, så er vell nå tiden å lære det Her blir ikke stringen sendt til funksjonen print_string, men bare en referanse til hvor starten på stringen er. Hadde hele stringen blitt sendt ville det ført til stor RAM bruk siden stringen hadde blitt kopiert i RAM. Dette kan en unngå med pointere. Stringen er avsluttet med null, så funksjonen slutter når stringen er slutt. En kan også få stringen til å ligge i flash hele tiden, og en trenger da bare en pointer til det området. Dette kan spare enda mer RAM, men denne stringen vil da selvfølgelig være statisk og kan ikke forandre verdi (Mer nyttig for oppslagstabeller o.l. en skal vil ha i programmene sine) Trur det var noe slik: const char text[] = "Hello World\n\r"; Uansett, pointere er noe du bør se på om du ikke har gjort det. Du får nok bruk for det før eller senere Lenke til kommentar
aop9020 Skrevet 17. august 2010 Del Skrevet 17. august 2010 Hvorfor vil du bitskifte PAx og PBx, hvorfor skal resultatet av denne skiftingen bestemme DDRA og DDRB? Hmm.. Må vel snart sette meg inn i AVR-verden.. Men arduino holder for meg enn så lenge.. Greit å ha andre til å lage funksjoner for meg. Lenke til kommentar
tingo Skrevet 18. august 2010 Del Skrevet 18. august 2010 Hvorfor vil du bitskifte PAx og PBx, hvorfor skal resultatet av denne skiftingen bestemme DDRA og DDRB? Hmm.. Må vel snart sette meg inn i AVR-verden.. Men arduino holder for meg enn så lenge.. Greit å ha andre til å lage funksjoner for meg. Det er vel slik at bit'ene i DDRx registeret bestemmer om en pinne skal være utgang eller inngang, avhengig av verdien. Og da er jo det en enkel måte å definerer dette på. Lenke til kommentar
CoolBeer Skrevet 18. august 2010 Forfatter Del Skrevet 18. august 2010 Hvorfor vil du bitskifte PAx og PBx, hvorfor skal resultatet av denne skiftingen bestemme DDRA og DDRB? Hmm.. Må vel snart sette meg inn i AVR-verden.. Men arduino holder for meg enn så lenge.. Greit å ha andre til å lage funksjoner for meg. For å sette en port som utgang setter man den respektive bit-en i data direction registeret(DDRA, DDRB...DDRn), dette kan gjøres slik: DDRA = 0x02; //binært: 0b00000010 eller slik: DDRA = (1 << PA1); //binært: 0b00000010 Nå er pinne PA1 satt som utgang og resten av DDRA pinnene som innganger, dette er litt knot hvis du ikke er interessert i å forandre på de andre portene, derfor bruker vi en "eller": DDRA |= (1 << PA1); //det samme som DDRA = DDRA | (1 << PA1); hvis DDRA er 11100100, og vi vil slå på PA1 blir det 11100100 | 00000010: 11100100 00000010 -------- 11100110 En "eller" vil slå sammen to verdier, sluttresultatet er at en bit er 1 hvis en av innbit-ene er høye. Muligens en smule rotete forklart, men håper det ble litt forståelig iallefall. Lenke til kommentar
CoolBeer Skrevet 18. august 2010 Forfatter Del Skrevet 18. august 2010 Horelys montert! -Kolbjørn Lenke til kommentar
aop9020 Skrevet 18. august 2010 Del Skrevet 18. august 2010 ta bilde med lyset dimmet Lenke til kommentar
CoolBeer Skrevet 19. august 2010 Forfatter Del Skrevet 19. august 2010 ta bilde med lyset dimmet Thy wish is my command: - Kolbjørn Lenke til kommentar
CoolBeer Skrevet 19. august 2010 Forfatter Del Skrevet 19. august 2010 Ny utgave av tiny24 headeren: Mest laget som en øvelse i smd-lodding, jeg får ikke laget ferdig kortet pga manglende deler(10k pullup, nå smd. Bypass cap, også smd), regner med rundt en måned leveringstid fra kina. Dette er forresten mitt andre forsøk, da det første ikke er presentabelt i det hele tatt Legg også merke til den noe hårete boringen, knakk to 1mm bor mens jeg holdt på... Merkelig nok er det 1mm som det går mest av, ikke 0.8mm. - Kolbjørn Lenke til kommentar
Puke Nukem Skrevet 19. august 2010 Del Skrevet 19. august 2010 Mice shitt altså! Jeg ønsker at jeg også kunne så mye som du kan! I alle fall å få så fine printkort! Jeg har dog bare en sprittusj til å lage dem med... Lenke til kommentar
Dr_VingTor Skrevet 19. august 2010 Del Skrevet 19. august 2010 [quote name='CoolBeer' date='19. august 2010 - 20:29' timestamp='1282242554' Legg også merke til den noe hårete boringen, knakk to 1mm bor mens jeg holdt på... Merkelig nok er det 1mm som det går mest av, ikke 0.8mm. Har du stativ eller borer du for hånd? Gått over til å bruke CNC maskina jeg kjøpte meg jeg da... Kjøpte et sett med bor i mange størrelser, trur det størst er ca 1mm stort, det minste ca 0,2mm kanskje Trur jeg har knekt 3 bor før jeg begynte å bruke den, og ett etterpå med maskina, glemte å justere høyden, så maskina gikk sideveis med boret nede i kretskortet Lenke til kommentar
CoolBeer Skrevet 20. august 2010 Forfatter Del Skrevet 20. august 2010 Har du stativ eller borer du for hånd? Gått over til å bruke CNC maskina jeg kjøpte meg jeg da... Kjøpte et sett med bor i mange størrelser, trur det størst er ca 1mm stort, det minste ca 0,2mm kanskje Trur jeg har knekt 3 bor før jeg begynte å bruke den, og ett etterpå med maskina, glemte å justere høyden, så maskina gikk sideveis med boret nede i kretskortet Aye, en CNC maskin hadde vært flott, mistenker at det er litt utenfor mitt foreløpige budsjett, vurderte å se etter en Dremel 335(plunge router), får den for ca 400 kr på ebay. Fikk også en trafo ifra electrokit.se, en 12-0-12 2x2A, spenning ferdig filtrert ble på ca. +-17.5, satt det på TL072-en i cmoy-kretsen, mye bedre resultat, så lenge jeg holdt breadboardet litt unna trafoen... - Kolbjørn Lenke til kommentar
CoolBeer Skrevet 21. august 2010 Forfatter Del Skrevet 21. august 2010 (endret) Måtte ta en liten pause fra den digitale verden, så jeg slengte opp ett printkort av 9v strømforsyninga jeg holder på med. Trim-potmeteret som kan ses i det ene hjørnet er på 1k det er koblet i serie med en 1k motstand mot jord, så LM317-en har 1-2k mot jord. Mellom adj og ut har vi 240 ohm, den og en 240 ohm på kapasitansmultiplikatoren er for anledningen smd, loddet på andre siden av kortet. Jeg målte spenningene ved ytterkantene av trim-potmeteret: Ting jeg ville forandret er plasseringen av TIP142-en, det er den transistoren som står bak den store kondensatoren, er litt herk å komme til skruen der. En annen ting er monteringshull, disse glemte jeg rett og slett av i farta... Utenom det er jeg ganske fornøyd, vi får se hvordan den presterer i bruk. - Kolbjørn EDIT: Noen kondensatorer er også litt nære ene kjøleribba, varmen vil smitte over på kondensatorene og levetiden på de vil gå ned. Endret 21. august 2010 av CoolBeer Lenke til kommentar
CoolBeer Skrevet 21. august 2010 Forfatter Del Skrevet 21. august 2010 Bilde av baksiden: Lagde kortet slik at jeg etset bort minst mulig kobber, dette hjelper på levetiden for etsevesken. - Kolbjørn Lenke til kommentar
Skaten Skrevet 22. august 2010 Del Skrevet 22. august 2010 Stilig! Kva bruker du for å tegna kretskort? Sia du klarte å laga kort som var såpass "etsesparande"? Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå