АЦП
|
|
pic_anton |
Дата: Вт, 23.02.2010, 15:58 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Пытаюсь разобраться
Сообщений:
58
Замечания:
±
На сайте с 18.02.2010
Статус:
Offline
|
Приветствую всех !!! Вопрос у меня такой сейчас работаю с АЦП все работает но только есть маленькая проблема при выведении информации на ЛСД как поставить точку. Выводиться 4980 а как сделать 4.980 пробовал делить на 1000 остается только 4 а откуда взять 980 не доходит.
Век живи, Век учись, и всего не постичь!!!
|
|
|
|
brown |
Дата: Вт, 23.02.2010, 17:30 | Сообщение # 2 |
Группа:
Пользователи
Ранг:
Помогаю всем
Сообщений:
333
Замечания:
±
На сайте с 18.09.2007
Статус:
Offline
|
Где-то так: lcdout DEC1 (volt/1000), ".", DEC3 (volt//1000)
Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
|
|
|
|
pic_anton |
Дата: Ср, 24.02.2010, 12:52 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Пытаюсь разобраться
Сообщений:
58
Замечания:
±
На сайте с 18.02.2010
Статус:
Offline
|
Спасибо я про эти // совсем забыл ведь смотрел в книгу видел фигу
Век живи, Век учись, и всего не постичь!!!
|
|
|
|
Ripper |
Дата: Вс, 18.04.2010, 09:27 | Сообщение # 4 |
Группа:
Пользователи
Ранг:
Новенький
Сообщений:
12
Замечания:
±
На сайте с 26.02.2010
Статус:
Offline
|
Как узнать значения ADCON для разных процессоров? В частности для PIC16F628A.
|
|
|
|
RVSTAR0340 |
Дата: Вт, 20.04.2010, 20:30 | Сообщение # 5 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
28
Замечания:
±
На сайте с 23.04.2009
Статус:
Offline
|
В частности, в PIC16F628A АЦП нет, поэтому нет регистра ADCON, следовательно, нет и значений. А в общем, надо читать мануалы на конкретный проц. В 16ф877, к примеру, для настройки и работы с ацп используются регистры ADCON0 и ADCON1 В 16 ф 676 - ANSEL Кроме того, еще необходимо прописать регистр CMCON, дабы отцепить компараторы от аналоговых входов Пример для 877А CMCON = %11111111 - отключаем компараторы ADCON1 = %10000010 ' Устанавливаем PORTA в режим аналогового входа с правым выравниваем ADCON0 = %11000001 ' Конфигурируем и включаем АЦП
|
|
|
|
chiper |
Дата: Чт, 15.07.2010, 13:37 | Сообщение # 6 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
108
Замечания:
±
На сайте с 14.07.2010
Статус:
Offline
|
У меня проблема, вот как вывести вообще вольты на LCD ?) если picbasicpro не потдерживает переменные типа real ? написал, а не работает..... pic 16f877 Code CMCON = %11111111 '- îòêëþ÷àåì êîìïàðàòîðû ADCON1 = %10000010 ' Óñòàíàâëèâàåì PORTA â ðåæèì àíàëîãîâîãî âõîäà ñ ïðàâûì âûðàâíèâàåì ADCON0 = %11000001 ' Êîíôèãóðèðóåì è âêëþ÷àåì ÀÖÏ
'****************************************************************************************** ux: volt var byte volt = "0" Adcin 1, volt LCDOUT $FE, 1, volt
pause 1000 goto ux
Как бы ты хорошо не паял, твой девайс на микроконтроллере без прошивки будет просто куском железа.
Сообщение отредактировал
chiper - Чт, 15.07.2010, 13:38
|
|
|
|
Matrix252005 |
Дата: Чт, 15.07.2010, 14:03 | Сообщение # 7 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
636
Замечания:
±
На сайте с 12.10.2007
Статус:
Offline
|
Приятного времени суток. chiper, попробуйте так. При этом он не будет показывать напряжение, он показывает значение считанное с АЦП. volt var Word Loop: Adcin 1, volt LCDOUT $FE, 1, #volt pause 1000 goto Loop
THE TRUTH IS OUT THERE.
С уважением, Николай.
Сообщение отредактировал
Matrix252005 - Чт, 15.07.2010, 14:07
|
|
|
|
chiper |
Дата: Чт, 15.07.2010, 14:27 | Сообщение # 8 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
108
Замечания:
±
На сайте с 14.07.2010
Статус:
Offline
|
Спасибо!
Как бы ты хорошо не паял, твой девайс на микроконтроллере без прошивки будет просто куском железа.
|
|
|
|
Matrix252005 |
Дата: Чт, 15.07.2010, 14:31 | Сообщение # 9 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
636
Замечания:
±
На сайте с 12.10.2007
Статус:
Offline
|
Всегда ПЛЗ. chiper, "В.Н. Хилинский - Учимся программировать микроконтроллеры PIC на языке PicBasic" эта книга Вам поможет. Мне она помогла. Извиняюсь за ошибку.
THE TRUTH IS OUT THERE.
С уважением, Николай.
Сообщение отредактировал
Matrix252005 - Чт, 15.07.2010, 14:35
|
|
|
|
chiper |
Дата: Пт, 16.07.2010, 23:23 | Сообщение # 10 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
108
Замечания:
±
На сайте с 14.07.2010
Статус:
Offline
|
Подскажете как сканфигулировать АЦП только на 2х выводах порта А ?? мне надо ТОЛЬКО RA0 и RA1 - сделать аналоговыми. контроллер pic16f877
Как бы ты хорошо не паял, твой девайс на микроконтроллере без прошивки будет просто куском железа.
|
|
|
|
terrarus |
Дата: Сб, 17.07.2010, 13:01 | Сообщение # 11 |
Группа:
Пользователи
Ранг:
Помогаю всем
Сообщений:
451
Замечания:
±
На сайте с 21.08.2008
Статус:
Offline
|
Quote (chiper) Подскажете как сканфигулировать АЦП только на 2х выводах порта А ?? Ответ смотрите на ресурсе http://terrarus.ucoz.ru/proton_plus_ide/index.html в разделе DATASHEETs/PIC/RUS/ PIC16F87X . Здесь можно по русски почитать про настройки портов PIC16F877. Обратите внимание на страничку [color=red]108[/color] даташита на PIC16F87X. Хоть ты научный работник и молодой, но немножко ленивый... Прочитай все же страничку 108. Раз САМ рзберёшься - на всю жизнь запомнишь.
Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
Сообщение отредактировал
terrarus - Сб, 17.07.2010, 13:34
|
|
|
|
chiper |
Дата: Вс, 18.07.2010, 00:01 | Сообщение # 12 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
108
Замечания:
±
На сайте с 14.07.2010
Статус:
Offline
|
Вредный вы дядька =) ну не чё, сам разобрался! Спасибо.
Как бы ты хорошо не паял, твой девайс на микроконтроллере без прошивки будет просто куском железа.
|
|
|
|
terrarus |
Дата: Пн, 19.07.2010, 08:56 | Сообщение # 13 |
Группа:
Пользователи
Ранг:
Помогаю всем
Сообщений:
451
Замечания:
±
На сайте с 21.08.2008
Статус:
Offline
|
Я не вредный, я справедливый... И спрашиваеш ты одно и тоже.
Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
|
|
|
|
chiper |
Дата: Чт, 22.07.2010, 21:55 | Сообщение # 14 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
108
Замечания:
±
На сайте с 14.07.2010
Статус:
Offline
|
Ребята подскажите почему у меня проподает высокий уровень на выводе d.1 во время выполнения этого участка программы ? какраз на 3 секунды пока идёт пауза Code
DEFINE OSC 4
' Èíèöèàëèçàöèÿ ÆÊÈ ********************************************************************** DEFINE LCD_DREG PORTD ' Îïðåäåëÿåì ïîðò, ê êîòîðîìó ïîäêëþ÷åíû öåïè äàííûõ. DEFINE LCD_DBIT 4 ' Îïðåäåëÿåì ïåðâûé âûâîä, ê êîòîðîìó ïîäêëþ÷åíà øèíà äàííûõ,
DEFINE LCD_RSREG PORTB ' Îïðåäåëÿåì ïîðò, ê êîòîðîìó ïîäêëþ÷åíà öåïü RS. DEFINE LCD_RSBIT 0 ' Îïðåäåëÿåì âûâîä, ê êîòîðîìó ïîäêëþ÷åíà öåïü RS.
DEFINE LCD_EREG PORTB ' Îïðåäåëÿåì ïîðò, ê êîòîðîìó ïîäêëþ÷åíà öåïü E. DEFINE LCD_EBIT 1 ' Îïðåäåëÿåì âûâîä, ê êîòîðîìó ïîäêëþ÷åíà öåïü E.
DEFINE LCD_BITS 4 ' Îïðåäåëÿåì ðåæèì 4 – ðàçðÿäíîé øèíû. DEFINE LCD_LINES 2 ' Îïðåäåëÿåì òèï ÆÊÈ. DEFINE LCD_COMMANDUS 2000 ' Îïðåäåëÿåì âðåìÿ çàäåðæêè ìåæäó êîìàíäàìè íà ÆÊÈ. DEFINE LCD_DATAUS 50 ' Îïðåäåëÿåì âðåìÿ çàäåðæêè ìåæäó ïîñûëêàìè äàííûõ.
'Èíèöèàëèçàöèÿ ÀÖÏ ***********************************************************************
DEFINE ADC_BITS 10 ' DEFINE ADC_CLOCK 100 ' DEFINE ADC_SAMPLEUS 10 '
trisa = %00011111 ADCON1 = %10000100
'Ïîäãîòîâêà ÌÊ *************************************************************************** 'trisa = %11111111 'adcon1 = %00000010
portc = %00000000 trisc = %00000000 trise = %00000111 porte = %00000111 portd = %00000000 trisd = %00000000 task VAR BIT volt var word voltpwr var word b0 var byte b1 var byte c0 var byte b00 var byte b11 var byte c00 var byte tmp1 var byte tmp2 var byte tmp3 var byte tmp4 var byte tmp5 var byte on_geleostat var byte lev4 var byte
portd.1 = 1 tmp5 = 2 '*****************************
' ацп
acp:
'огромный кодддд......... '................................ если что то, то goto on_acp
'огромный кодддд......... '................................
on_acp: if porta.2 = 0 and tmp5 = 2 then trisa =%00011110 Adcin 1, voltpwr LCDOUT $FE,1, " Out Power",":", DEC2(voltpwr/10), ".",DEC1(voltpwr//100),"V" LCDOUT $FE,192,"----------------" portc.4 = 0 : portc.5 = 0 : portc.6 = 0 : portc.7 = 0 pause 3000 trisa =%00011111 goto acp endif Вот немного укоротил в 10 раз что бы вы не ломали долго голову.
Как бы ты хорошо не паял, твой девайс на микроконтроллере без прошивки будет просто куском железа.
Сообщение отредактировал
chiper - Чт, 22.07.2010, 22:01
|
|
|
|