Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
28.01.2010, 22:31
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.02.2008
Сообщений: 1,802
Сказал спасибо: 124
Сказали Спасибо 602 раз(а) в 419 сообщении(ях)
|
Re: АЦП в mega8
Сообщение от Saadov
|
Цитата:
ADMUX=0xE5;//8битный вход, опорное 2.56, выравнивание по левой границе
Точно смотрите напряжение на 5 пине???
0xE5 = 1110 (0101) - 5 в десятичной. Может спутали? Смотрите схему...
|
ADC5 в DIPe - 28 ножка, к AREF подкл. конденсатор, и тогда все должно работать.
|
|
|
|
28.01.2010, 22:33
|
|
Частый гость
Регистрация: 09.04.2009
Сообщений: 23
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: АЦП в mega8
Для проверки делал такую схемку в протеусе.
|
|
|
|
28.01.2010, 22:35
|
|
Частый гость
Регистрация: 09.04.2009
Сообщений: 23
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: АЦП в mega8
Полный текст.
#include ‹mega8.h›
#include ‹delay.h›
#define E1 PORTD.4
#define E2 PORTD.5
#define RES PORTD.2
#define AO PORTD.1
#define C PORTD.6
#define D PORTD.7
WriteByte(char b, char cd, char L, char R)
{
int j;
AO=cd;
for (j=7;j›=0;j--)
{
D=(b››j)&0b00000001;
C=1;
C=0;
}
if (L==1) E1=1;
if (R==1) E2=1;
E1=E2=0;
}
WriteCode(char b){WriteByte(b,0,1,1);}
WriteDataL(char b){WriteByte(b,1,1,0);}
WriteDataR(char b){WriteByte(b,1,0,1);}
void LCDinit(void)
{
int j;
char oscil[60]={0x00 };
E1=0; E2=0;
RES=0;
delay_us(15);
RES=1;
delay_ms(2);
WriteCode(0xE2);
WriteCode(0xE0);
WriteCode(0xA4);
WriteCode(0xA9);
WriteCode(0xC0);
WriteCode(0xA1);
WriteCode(0xAF);
for(j=0;j‹61;j++)WriteDataL(oscil[j]);
}
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
TCNT1H=0x00;
TCNT1L=0x00;
ADCSRA=0xCF;
}
// External Interrupt 1 service routine
interrupt [EXT_INT1] void ext_int1_isr(void)
{
ADCSRA=0x8F;
TCCR1B=0x0B;
}
// ADC interrupt service routine
interrupt [ADC_INT] void adc_isr(void)
{
unsigned int adcInt;
//adcInt=ADCH;
//adcInt=(1024*adcInt/2.56)/8;
//if ((256*ADCH/2.56)›150) WriteDataR(0xFF);
if (ADCH==50) WriteDataR(0xFF);
}
// Declare your global variables here
void main(void)
{
PORTB=0x00;
DDRB=0xFF;
PORTC=0x00;
DDRC=0x00;
DDRD=0xFF;
PORTD=0x00;
DDRD.3=0;
PORTD.3=1;
// External Interrupt(s) initialization
// INT0: Off
// INT1: On
// INT1 Mode: Any change
GICR|=0x80;
MCUCR=0x0C;
GIFR=0x80;
// ADC initialization
ACSR=0x0F;
ADMUX=0xE5;
ADCSRA=0x0F;
SFIOR=0x00;
// Timer 1
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0xC8;
OCR1BH=0x00;
OCR1BL=0x00;
TIMSK=0x10;
// Global enable interrupts
#asm("sei")
LCDinit();
}
|
|
|
|
28.01.2010, 22:36
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.02.2008
Сообщений: 1,802
Сказал спасибо: 124
Сказали Спасибо 602 раз(а) в 419 сообщении(ях)
|
Re: АЦП в mega8
У вас выбран режим - Internal 2.56V Voltage Reference with external capacitor at AREF pin -REFS1=1 и REFS0=1 , а AREF в воздухе.
|
|
|
|
28.01.2010, 22:38
|
|
Частый гость
Регистрация: 09.04.2009
Сообщений: 23
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: АЦП в mega8
Сообщение от andries5
|
У вас выбран режим - Internal 2.56V Voltage Reference with external capacitor at AREF pin -REFS1=1 и REFS0=1 , а AREF в воздухе.
|
Хм. А как именно его подключить и к чему?
|
|
|
|
28.01.2010, 22:43
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.02.2008
Сообщений: 1,802
Сказал спасибо: 124
Сказали Спасибо 602 раз(а) в 419 сообщении(ях)
|
Re: АЦП в mega8
Сообщение от FlashAck
|
А как именно его подключить и к чему?
|
На GND.
|
|
|
|
28.01.2010, 22:45
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,018
Сказал спасибо: 348
Сказали Спасибо 1,024 раз(а) в 552 сообщении(ях)
|
Re: АЦП в mega8
Цитата:
|
external capacitor at AREF pin
|
переводится как "внешний конденсатор в штырьке AREF"
|
|
|
|
28.01.2010, 22:46
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,727
Сказал спасибо: 2,428
Сказали Спасибо 893 раз(а) в 580 сообщении(ях)
|
Re: АЦП в mega8
Таймер-то работает ?
|
|
|
|
28.01.2010, 22:58
|
|
Частый гость
Регистрация: 09.04.2009
Сообщений: 23
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: АЦП в mega8
Сообщение от baiderin
|
Таймер-то работает ?
|
Конечно. Сообщение то выводится.
Так надо было подключить конденсатор? Если да то не помогло.
|
|
|
|
28.01.2010, 23:01
|
|
Частый гость
Регистрация: 09.04.2009
Сообщений: 23
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: АЦП в mega8
Сообщение от andries5
|
Сообщение от baiderin Посмотреть сообщение
Таймер-то работает ?
А действительно TCCR1B=0x00;
CS12=0 CS11=0 CS10=0 No clock source. (Timer/Counter stopped)!
|
Он у меня включается от внешнего прерывания. См. в полном тексте
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:43.
|
|