Re: Atmega 328p: Problem med ADC:er
Postat: 19 juni 2016, 14:50:21
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:
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.
Kod: Markera allt
ADMUX = (1<<REFS0) | (0<<REFS1) | ch;
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.