Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 07.09.2014, 08:08  
AVRkin
Прописка
 
Аватар для AVRkin
 
Регистрация: 07.09.2014
Сообщений: 136
Сказал спасибо: 18
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
AVRkin на пути к лучшему
По умолчанию Проблема с АЦП

Здравствуйте!
я изучаю си для микроконтроллеров, появилась проблема с ацп,
оно вроде считывается но информация на дисплее не изменяется
всегда одно и то же значение
Нажмите на изображение для увеличения
Название: Снимок.JPG
Просмотров: 170
Размер:	100.8 Кб
ID:	69337
код такой
Код:
//подключение библиотек
#include ‹mega8.h›
#include ‹delay.h›
#include ‹stdio.h›
#include ‹lcd.h›

void main(void)
{
int d;
char string[10];
float K;        

PORTB=0x00;
DDRB=0x00;

PORTC=0x00;
DDRC=0x00;

#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
lcd_init(16);

ACSR=0x80;
ADMUX=0;
ADCSR=0x85;
   
while (1)
      { 
        delay_ms(10);     
        ADCSR |= 0x40;    
        d = ADCW;      
        K = (float) d*1;   
        sprintf(string, "%1.2f K", K); 
        lcd_gotoxy(0,0);  
        lcd_puts(string); 
      };
}
это проект в протеусе 7.1 и CodeVisionAVR
pot.zip

где ошибка? я вроде всё правильно сделал
Реклама:

Последний раз редактировалось AVRkin; 07.09.2014 в 13:02.
AVRkin вне форума  
Непрочитано 07.09.2014, 08:43  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,856
Сказал спасибо: 2,532
Сказали Спасибо 11,770 раз(а) в 5,896 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: проблема с АЦП

Кто мешает воспользоваться Визардом и использовать функцию read_adc(num chan) или посмотреть, как она устроена?
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor на форуме  
Сказали "Спасибо" akegor
AVRkin (07.09.2014)
Непрочитано 07.09.2014, 09:03  
AVRkin
Прописка
 
Аватар для AVRkin
 
Регистрация: 07.09.2014
Сообщений: 136
Сказал спасибо: 18
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
AVRkin на пути к лучшему
По умолчанию Re: проблема с АЦП

Сообщение от akegor Посмотреть сообщение
Кто мешает воспользоваться Визардом и использовать функцию read_adc(num chan) или посмотреть, как она устроена?
с функцией получилось, это я другой способ пробую)
__________________
Самое главное умение - умение радоваться жизни.
AVRkin вне форума  
Непрочитано 07.09.2014, 09:12  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,856
Сказал спасибо: 2,532
Сказали Спасибо 11,770 раз(а) в 5,896 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: проблема с АЦП

АЦП надо запустить и дождаться результата. Посмотрите, как это в функции сделано.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor на форуме  
Сказали "Спасибо" akegor
AVRkin (07.09.2014)
Непрочитано 07.09.2014, 12:40  
AVRkin
Прописка
 
Аватар для AVRkin
 
Регистрация: 07.09.2014
Сообщений: 136
Сказал спасибо: 18
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
AVRkin на пути к лучшему
По умолчанию Re: проблема с АЦП

код допилил
Код:
#include ‹mega8.h›
#asm
   .equ __lcd_port=0x18 ;PORTB
#endasm
#include ‹lcd.h›
#include ‹delay.h›
#include ‹stdio.h›

char string[10];

void main(void)
{

int data;
float V;

PORTB=0x00;
DDRB=0x00;

PORTC=0x00;
DDRC=0x00;

ACSR=0x80;

ADCSR=0x85;

lcd_init(16);
lcd_putsf("12345678");


while (1)
      { 
        delay_ms(20);
        ADCSR |= 0x40;
        data = ADCW;   
        V = (float) data*0.0048828;
        sprintf(string, "%1.2f", V);
        lcd_gotoxy(0,1);
        lcd_puts(string);

      };
}
в симуляторе работает, а в железе значения не меняются, пишет 5.00
__________________
Самое главное умение - умение радоваться жизни.
AVRkin вне форума  
Непрочитано 07.09.2014, 12:56  
AVRkin
Прописка
 
Аватар для AVRkin
 
Регистрация: 07.09.2014
Сообщений: 136
Сказал спасибо: 18
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
AVRkin на пути к лучшему
По умолчанию Re: проблема с АЦП

при
lcd_putsf("12345678");
sprintf(string, "%1.4f", V);

показывает
Цитата:
12345678
4.9951
на резистор и даже замыкание ножки на 5 или0 не реагирует
__________________
Самое главное умение - умение радоваться жизни.
AVRkin вне форума  
Непрочитано 07.09.2014, 13:19  
AVRkin
Прописка
 
Аватар для AVRkin
 
Регистрация: 07.09.2014
Сообщений: 136
Сказал спасибо: 18
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
AVRkin на пути к лучшему
По умолчанию Re: проблема с АЦП

AVCC повесил на 5 вольт, заработало
все разряды после точки постоянно изменяются, как это победить?
__________________
Самое главное умение - умение радоваться жизни.

Последний раз редактировалось AVRkin; 07.09.2014 в 13:37.
AVRkin вне форума  
Непрочитано 07.09.2014, 13:51  
Yurkin2014
Заблокирован
 
Регистрация: 21.01.2014
Сообщений: 589
Сказал спасибо: 7
Сказали Спасибо 267 раз(а) в 206 сообщении(ях)
Yurkin2014 на пути к лучшему
По умолчанию Re: проблема с АЦП

Вот в этом месте
Код:
ADCSR |= 0x40;
 data = ADCW;
первая строчка стартует преобразование АЦП, а вторая тут же забирает результат. Между этими двумя событиями проходит времени микросекунда, АЦП просто ничего еще не успел сделать, ему нужно какое-то время на выполнение преобразования, типа, десятки микросекунд, а может и сотня.
Чтобы определить готов ли результат, надо после старта в пустом бесконечном цикле проверять стартовый бит. Когда АЦП закончит, процессор сбрасывает этот бит, из цикла выходим и забираем результат. То есть в приведенном фрагменте вторая строчка должна быть
while (ADCSR & 0x40);
Yurkin2014 вне форума  
Сказали "Спасибо" Yurkin2014
AVRkin (07.09.2014)
Непрочитано 07.09.2014, 13:54  
AVRkin
Прописка
 
Аватар для AVRkin
 
Регистрация: 07.09.2014
Сообщений: 136
Сказал спасибо: 18
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
AVRkin на пути к лучшему
По умолчанию Re: проблема с АЦП

дребезг разрядов убрал с помощью батарейки в качестве ИОН
__________________
Самое главное умение - умение радоваться жизни.
AVRkin вне форума  
Непрочитано 07.09.2014, 13:56  
Ara41
Почётный гражданин KAZUS.RU
 
Регистрация: 30.09.2006
Сообщений: 1,560
Сказал спасибо: 158
Сказали Спасибо 661 раз(а) в 431 сообщении(ях)
Ara41 на пути к лучшему
По умолчанию Re: проблема с АЦП

Сообщение от Yurkin2014 Посмотреть сообщение
надо после старта в пустом бесконечном цикле проверять стартовый бит
...
while (ADCSR & 0x40);
У Вас опечатка, цикл не бесконечный.
Ara41 вне форума  
Сказали "Спасибо" Ara41
AVRkin (07.09.2014)
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с АЦП ATmega168 r0st Микроконтроллеры, АЦП, память и т.д 18 28.05.2012 23:51
Некорректно работает АЦП Atmega 8 putmannn Микроконтроллеры, АЦП, память и т.д 15 13.09.2011 06:03
AtMega АЦП impuls-v Микроконтроллеры, АЦП, память и т.д 19 20.06.2011 20:12
Стабилизация измерения АЦП ATMega8535 7Fantomas7 Микроконтроллеры, АЦП, память и т.д 41 02.03.2011 13:25
АЦП и UART Jasper Микроконтроллеры, АЦП, память и т.д 9 02.07.2006 07:53


Часовой пояс GMT +4, время: 23:51.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot