Sida 6 av 7

Re: Arduino: Analogread visar endast 1023 hela tiden!

Postat: 8 mars 2014, 13:48:57
av Al_Bundy
Jag förstår inte vad du menar med OSCCAL = 128; . Ska jag bara klistra in det i programmet?

Re: Arduino: Analogread visar endast 1023 hela tiden!

Postat: 8 mars 2014, 13:54:03
av bearing
Japp, precis i början av setup(). Sen får du testa olika värden tills seriekommunikationen funkar.

Re: Arduino: Analogread visar endast 1023 hela tiden!

Postat: 8 mars 2014, 14:49:32
av Al_Bundy
Det var något nytt. Nej, det blev inte bättre. Mycket sämre. :)
Jag kanske ska införa en funktion som endast låter rena flotat tal passera :)

Re: Arduino: Analogread visar endast 1023 hela tiden!

Postat: 8 mars 2014, 15:02:43
av bearing
Haha, bra jobbat. Det var faktiskt ganska kul, även för mig.

Det blev så klart sämre eftersom att just numret 128 gjorde att oscillatorn avvek mer ifrån 8 MHz än tidigare. Ifall du skickar original OSCCAL-värde till datorn till att börja med, så att du har något att utgå ifrån, kommer det nog inte ta så lång tid att hitta rätt. Det finns många metoder för att kalibrera OSCCAL, men jag tror att denna manuella metod som jag föreslog är enklast för dig, som inte verkar så kunnig inom programmering.

Re: Arduino: Analogread visar endast 1023 hela tiden!

Postat: 8 mars 2014, 15:58:31
av jesse
OSCCAL är redan programmerad i förväg för att ge just 8 MHz. Det brukar inte vara så fel att det inte fungerar med UART. Men om man ska programmera om OSCCAL så är nog det smartaste att utgå från det okända värdet den har från början. Det gör man genom att läsa in värdet från OSCCAL och sedan skriva tillbaks ett ändrat värde. Till exempel skrivar man någonstans i setup():

Kod: Markera allt

OSCCAL = OSCCAL * 1.05; // testa med 5% snabbare oscillator

Re: Arduino: Analogread visar endast 1023 hela tiden!

Postat: 8 mars 2014, 16:15:19
av bearing
Det är en bättre ide, fast jag tror inte det går att multiplicera med en flyttalskonstant på det där viset. Men man kan ju skriva typ OSCCAL += 2; eller OSCCAL -= 3; och leta sig rätt.

Re: Arduino: Analogread visar endast 1023 hela tiden!

Postat: 8 mars 2014, 16:20:54
av jesse
Du har helt rätt. Det går utmärkt att multiplicera på det viset, men det är ju helt onödigt. Din metod är vettigare och skapar inga problem med avrundning.

Re: Arduino: Analogread visar endast 1023 hela tiden!

Postat: 8 mars 2014, 19:39:56
av Al_Bundy
Tackar jessie! Jag ska testa och kallibrera med 5% succesivt! Jag återkommer med svar! :)

Re: Arduino: Analogread visar endast 1023 hela tiden!

Postat: 8 mars 2014, 22:30:00
av sodjan
Läs på om OSCCAL och hur registret "skalar" mot oscillator frekvensen.
Sen kan ju justera så att det blir t.ex 1% steg i hastigheten på oscillatorn.
Det kan vara lagom för att trimma seriekommunikationen.

(Sen så brukar man inte behöva göra det, så jag är inte övertygad om
det är just detta. Jag skulle mäta upp hastigheten så att man vet
säkert vad det är som strular...)

Re: Arduino: Analogread visar endast 1023 hela tiden!

Postat: 11 mars 2014, 22:56:06
av Nisse
Al_Bundy skrev:Att jag inte få med dessa svordommar i float variabeln ¤%¤%.C´

Jag kanske ska införa en funktion som endast låter rena flotat tal passera :)
De där skräptecknen uppstår ju i kommunikationen mellan din microprocessor och datorn.
En float innehåller ett tal, inget annat: http://arduino.cc/en/Reference/Float

Re: Arduino: Analogread visar endast 1023 hela tiden!

Postat: 12 mars 2014, 11:27:56
av Miramithe
Om man tar en arduino som stock har 16mhz men sen kör den i 8 mhz påverkar det baud?

Re: Arduino: Analogread visar endast 1023 hela tiden!

Postat: 12 mars 2014, 11:36:14
av Icecap
Om man ställer Baud-rate genereringen som att den kör på 16MHz kommer det självklart att påverka avsevärd. Men vill man köra på 8MHz t.ex. för att spara ström, kan man bara ställa Baud-rate genereringen korrekt, sedan ska saken vara biff.

Noggrannheten är ju baserat på samma oscillator varför den ska vara lika bra/dålig.

Sedan tror jag inte på att de har interna oscillatorer på 8mHz hhv. 16mHz, det är ju oerhört långsamt. 8MHz hhv. 16MHz är mycket mer aktuellt, det är ju ändå en skillnad på 10^9 gg.

Re: Arduino: Analogread visar endast 1023 hela tiden!

Postat: 12 mars 2014, 11:46:47
av sodjan
Man måste läsa på om hur den aktuella baudrate generatorn är konstruerad.
Självklart måste man ställa om *någonting*, men var väl aldrig oklart (?).
Att köra i 16 MHz ger så klart mindre fel, om allt annat är samma.

Re: Arduino: Analogread visar endast 1023 hela tiden!

Postat: 12 mars 2014, 21:18:45
av Miramithe
Nej jag bara tänkte lite, håller inte på med något sådant själv just nu men har för mig att jag läst att baud måste ställas om om man kör annan frekvens och al om jag inte har fel kör på en annan frekvens, kan dock blanda ihop trådar det multipostas ju rätt vad det är.

Re: Arduino: Analogread visar endast 1023 hela tiden!

Postat: 12 mars 2014, 23:26:59
av sodjan
Ja, värdet som ska skrivas till registren är *helt* beroende på
den hastighet/frekvens som processorns ska köras på, det är
ju den som används som insignal för att räkna fram baudrate...