-
Path: news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news-2.dfn.de!ne
ws.dfn.de!feeder.erje.net!feeder.news-service.com!postnews.google.com!f42g2000y
qn.googlegroups.com!not-for-mail
From: Jan Górski <g...@o...pl>
Newsgroups: pl.misc.elektronika
Subject: ADC w ATMEGA16 i ilość stanów
Date: Fri, 30 Jul 2010 08:51:47 -0700 (PDT)
Organization: http://groups.google.com
Lines: 92
Message-ID: <f...@f...googlegroups.com>
NNTP-Posting-Host: 91.189.0.210
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
X-Trace: posting.google.com 1280505109 7087 127.0.0.1 (30 Jul 2010 15:51:49 GMT)
X-Complaints-To: g...@g...com
NNTP-Posting-Date: Fri, 30 Jul 2010 15:51:49 +0000 (UTC)
Complaints-To: g...@g...com
Injection-Info: f42g2000yqn.googlegroups.com; posting-host=91.189.0.210;
posting-account=BcK0kQoAAAClcQzNiDPwy7W9dMNJ4-fa
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0;
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR
1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR
3.5.30729; InfoPath.2),gzip(gfe)
Xref: news-archive.icm.edu.pl pl.misc.elektronika:592999
[ ukryj nagłówki ]Mam wrażenie, że ilość stanów rzeczywistych w ADC 10bit jest niższa od
ilości możliwych (czyli 10 bit). ADC skonfigurowany jest na AREF =
internal.
masa -----/\/\/ 1MOHM /\/\/------|/tuADC/|---------|fototranz|------
AREF
Skonstruowałem prosty czujnik optyczny na fototranzystorze połączonym
w szereg z 1Mohm'owym rezystorem. Napięcie na 'dzielniku' waha się od
0 do AREF V, tak, że po oświetleniu fototranzystora, napięcie na
dzielniku rośnie(fototranzystor przewodzi). Do "dzielnika" wpiąłem
wejście ADC.
Wyniki, jakie osiągam powoli zakrywając 'oczko' fototranzystora
zmieniają się dość skokowo, czasem znacznie. Powinno być dość powoli.
Podobnie jest, jak podepnę wejście ADC do regulowanego rezystora, co w
tym wypadku łatwiej wytłumaczyć kiepskimi ścieżkami węglowymi.
KOD : -------------------------------------------
#include <avr/io.h> // dostęp do rejestrów
#include <avr/interrupt.h> // funkcje sei(), cli()
#include <util/delay.h>
#include <dodane/mojLCD.h>
#include <stdlib.h>
void lcd_print(char *str) {
unsigned char i=0;
while(str[i]!=0) {
lcdData(str[i]);
i++;
}
}
void adc_init(void) // Function to initialise the ADC feature
{
ADCSRA=0X00; // Clear previous ADC results and status flags
ADMUX=0X40 ; // 0x40 for 10 bits (0x60)
ADCSRA=0X87; // We have set the ADSC bit to start a conversion, and
the
// ADPS bits are set so that the prescaler is 128
ADCSRA=0X80; // ADEN is set, to enable the ADC
}
unsigned int adc_start(unsigned char channel) // Function to perform
an ADC conversion, Takes 0-8 as input
// to select which input to convert
{
unsigned char i;
ADCH=0x00; // Clear the previous result
ADCL=0x00; // Clear the previous result
i=channel&0x07; // Decide which line to perform ADC conversion on
ADMUX=i|0x60; // Enter which line to perform in the ADC control
register
ADCSRA|=1<<ADSC;
while(ADCSRA & (1<<ADSC)); // wait for conv. to complete
unsigned int temp=ADC; //unsigned int temp=ADC; for 10 bits
return temp;
}
/* ---------------- Sample ADC Call -----------------------*/
int main(void) {
unsigned int result=0;
char str[10];
_delay_ms(500);
lcd_init();
adc_init();
while(1) {
result=adc_start(0); // This performs ADC conversion on Pin A0 and
stores the result
lcdCommand(HD44780_CLEAR);
_delay_ms(2);
lcd_print("ADC : ");
itoa(result,str,10);
lcd_print(str);
_delay_ms(50);
}
return 0;
}
----------------------------------------------------
-
Następne wpisy z tego wątku
- 30.07.10 16:19 Michoo
- 30.07.10 16:34 Jan Górski
- 30.07.10 20:16 Michoo
- 30.07.10 20:57 Konop
- 31.07.10 07:01 Jan Górski
Najnowsze wątki z tej grupy
- Pytanie o transformator do dzwonka
- międzymordzie USB 3.2 jako 2.0
- elektronicy powinni pomysleć o karierze elektryka
- jak szybko plynie prad
- Płytki Milkv-Duo
- Światłowód między budynkami
- POtrzebny bufor 3.3<>5V, jedonkieruowy, trójstanowy, wąski
- retro
- Bezprzewodowe polączenie Windows z projektorem
- rozklejanie obudowy
- Prośba o identyfikację komponentu
- Smart gniazdko straciło na zasięgu wifi?
- Smart gniazdko straciło zasięg wifi?
- nurtuje mnie
- dziwna sprawa...
Najnowsze wątki
- 2024-11-08 Belka
- 2024-11-09 pierdolec na punkcie psa
- 2024-11-09 Warszawa => Sales Executive <=
- 2024-11-09 Wrocław => SAP BTP Consultant (mid/senior) <=
- 2024-11-09 Warszawa => ECM Specialist / Consultant <=
- 2024-11-09 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2024-11-10 TVN donosi: Obywatelskie zatrzymanie policjanta (nie na służbie)
- 2024-11-08 Warszawa => Head of International Freight Forwarding Department <=
- 2024-11-08 Warszawa => Key Account Manager <=
- 2024-11-08 Szczecin => Key Account Manager (ERP) <=
- 2024-11-08 Białystok => Full Stack web developer (obszar .Net Core, Angular6+) <
- 2024-11-08 Wrocław => Senior PHP Symfony Developer <=
- 2024-11-08 Warszawa => QA Engineer <=
- 2024-11-08 Warszawa => QA Inżynier <=
- 2024-11-08 Warszawa => Key Account Manager <=