Easyelectronics.ru

Электроника для всех
Текущее время: 07 дек 2019, 04:37

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: АЦП на PICC
СообщениеДобавлено: 17 май 2015, 14:52 
Заглядывает иногда

Зарегистрирован: 04 май 2011, 11:36
Сообщения: 51
Пробую написать прошивку на PICC которая измеряет примерно 10 раз в секунду аналоговый сигнал и отправляет по RS232. Если используется 8 разрядный режим АЦП, то все работает, но если попытаться перейти на 10 разрядный, то выдает какой-то бред.

Если указать «#device adc=10» то при параметре u максимальное значении оказывается 255, как если бы АЦП был 8 битный, а при параметре d вообще выдает отрицательные значения. Может кто-нибудь подсказать, где ошибка?

Код:
#include <16F876A.h>
#device adc=10
#FUSES NOWDT
#FUSES XT
#FUSES NOLVP
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,stream=RS232)

int n;

void main()
{
   setup_adc_ports(AN0);
   setup_adc(ADC_CLOCK_INTERNAL);
   set_adc_channel(0);

   while(TRUE)
   {
      n=read_adc();
      printf(" n=%u", n);
      putchar(13);
      delay_ms(100);
   }

}


Вложения:
ISIS Professional - D--Prohivki-ADC-RS232-ADC-RS232.jpg
ISIS Professional - D--Prohivki-ADC-RS232-ADC-RS232.jpg [ 120.11 Кб | Просмотров: 6847 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АЦП на PICC
СообщениеДобавлено: 17 май 2015, 16:12 
Только пришел

Зарегистрирован: 13 июн 2013, 11:27
Сообщения: 24
Результат 10 бит будет int(16 бит).
Нужно увеличить разрядность при чтении АЦП и при сохранении.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АЦП на PICC
СообщениеДобавлено: 17 май 2015, 18:04 
Заглядывает иногда

Зарегистрирован: 04 май 2011, 11:36
Сообщения: 51
AVladM писал(а):
Результат 10 бит будет int(16 бит).
Нужно увеличить разрядность при чтении АЦП и при сохранении.

Попробовал я объявить переменную n как «int16 n;» но тогда компилятор начинает ругаться на строчку «printf(" n=%u", n);».


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АЦП на PICC
СообщениеДобавлено: 19 май 2015, 10:53 
Заглядывает иногда

Зарегистрирован: 04 май 2011, 11:36
Сообщения: 51
Все, нашел решение: переменную n нужно объявить как long, а в операторе printf поставить параметр ld.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB