Sida 2 av 2

Re: Atmega 328p: Problem med ADC:er

Postat: 19 juni 2016, 14:50:21
av larsson
Hittade labbplattan och har testkört. Fick byta ut dina LCD-grejer mot utskrift till serieporten. Allt fungerar som förväntat när jag använder Vcc som referensspänning till ADCn, Denna rad i koden funkade:

Kod: Markera allt

ADMUX = (1<<REFS0) | (0<<REFS1) | ch;
Dvs biten REFS1 ska vara 0 istället för 1. Med en etta där (som du hade) kan du bara mäta upp till 1,1V. Allt beter sig som det ska när jag kopplar pinnar 27 och 28 till 5V, 3,3V eller jord. (Med flytande ingångar så blir det alla möjliga lustiga värden, kanske från nätbrum och annat, men det visste vi ju redan. )

Kopplar jag en pot mellan jord/+5V/mätpinne kan jag ställa in valfritt värde mellan 0 och 4995, snyggt och prydligt. Men när REFS1 är satt till en etta så får jag värdet 4995 redan vid 1,1V från potten -- precis som sig bör.

Hur du lyckas få 0,22 och 0,44 Volt när du mäter kan jag inte förklara, men prova fixa till ref-spänningen först så kanske något annat rättar till sig samtidigt :)

Kör du avr-libc? Då måste du definiera F_CPU innan du inkluderar <util/delay.h>, annars stämmer nog inte dina tider. Fast du kanske definierar den annorstädes.

Re: Atmega 328p: Problem med ADC:er

Postat: 21 juni 2016, 21:42:54
av Castello
Hej igen!

Glädje och fröjd åt alla! Det verkar som att det funkar! :D

Jag ändrade bara referensspänningen (REFS1 = 0) och så verkar det som att något föll på plats. Jag har dokumenterat mästerverket nedan, och bjöd på lite extra göteborska:



Tack för alla tips, och en särskild eloge till larsson som tog sig tiden att koppla upp kretsen och hjälpa till på ett så handfast sätt med felsökandet! :tumupp:

Re: Atmega 328p: Problem med ADC:er

Postat: 21 juni 2016, 21:51:17
av Magnus_K
Det va la ena gött! :tumupp:
Har varit en intressant tråd. Bra jobbat till alla inblandade!