Arduino: Analogread visar endast 1023 hela tiden!
Re: Arduino: Analogread visar endast 1023 hela tiden!
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!
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!
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

Jag kanske ska införa en funktion som endast låter rena flotat tal passera

Re: Arduino: Analogread visar endast 1023 hela tiden!
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.
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!
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!
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!
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!
Tackar jessie! Jag ska testa och kallibrera med 5% succesivt! Jag återkommer med svar! 

Re: Arduino: Analogread visar endast 1023 hela tiden!
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...)
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!
De där skräptecknen uppstår ju i kommunikationen mellan din microprocessor och datorn.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
En float innehåller ett tal, inget annat: http://arduino.cc/en/Reference/Float
Re: Arduino: Analogread visar endast 1023 hela tiden!
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!
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.
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!
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.
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!
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!
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...
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...