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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 31.07.2006, 22:21  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию

Вариации...

Код:
#include ‹16F877A.h›
#device ADC=10
#use delay(clock=10000000)
#fuses HS, NOWDT,NOLVP
#byte ADCON0 =0x1F
#bit GO=0x1F.2
int n;
#int_AD
AD_isr()
{
n =read_adc() / 102;
output_C((2 ‹‹ n - 1));
GO=1;
}
void main()
{
   set_TRIS_C(0x00);
   setup_adc_ports(RA0_ANALOG);
   setup_adc(ADC_CLOCK_DIV_32);
   set_adc_channel(0);
   enable_interrupts(INT_AD);
   enable_interrupts(GLOBAL);
   GO=1;
   WHILE(1);
}


Код:
#include ‹16F877A.h›
#device ADC=10
#use delay(clock=10000000)
#fuses HS, NOWDT,NOLVP
#byte ADCON0 =0x1F
int n;
#int_AD
AD_isr()
{
n =read_adc() / 102;
output_C((2 ‹‹ n - 1));
bit_set(ADCON0,2);
}
void main()
{
   set_TRIS_C(0x00);
   setup_adc_ports(RA0_ANALOG);
   setup_adc(ADC_CLOCK_DIV_32);
   set_adc_channel(0);
   enable_interrupts(INT_AD);
   enable_interrupts(GLOBAL);
   bit_set(ADCON0,2);
   WHILE(1);
}
Реклама:
dosikus вне форума  
Непрочитано 31.07.2006, 22:39  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию

Да , а вот почему побитовое И не работает
это и мне интересно...


Код:
ADCON0 |=4;
dosikus вне форума  
Непрочитано 31.07.2006, 22:48  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию

Блин ничего не понимаю,
и это то же заработало

Код:
#include ‹16F877A.h›
#device ADC=10
#use delay(clock=10000000)
#fuses HS, NOWDT,NOLVP
#byte ADCON0 =0x1F

int n;
#int_AD
AD_isr()
{
n =read_adc() / 102;
output_C((2 ‹‹ n - 1));
ADCON0 |= 4;
}
void main()
{
   set_TRIS_C(0x00);
   setup_adc_ports(RA0_ANALOG);
   setup_adc(ADC_CLOCK_DIV_32);
   set_adc_channel(0);
   enable_interrupts(INT_AD);
   enable_interrupts(GLOBAL);
   ADCON0 |= 4;
   WHILE(1);
}
dosikus вне форума  
Непрочитано 31.07.2006, 23:24  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию

Так, нашел почему пример в книге для 18
пиков не работал--

там ADCON0 дается адрес 0x1F то для 16 пиков
а надо 0xFC2
dosikus вне форума  
Непрочитано 31.07.2006, 23:42  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию

Вот пожалуйте ....
Да видно не всему верить можно, что напечатано...

-- Прилагается рисунок: --
dosikus вне форума  
Непрочитано 31.07.2006, 23:52  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию

to zelanez
У тебя та же ошибка была
за место адреса для ADCON
ты давал ему данные

Код:
#byte ADCON0 = 0x85 /* F/32_RA0_GO=1_0_IN */
Читайте Даташиты...
http://www.microchip.ru/lit/?mid=1x0
dosikus вне форума  
Непрочитано 01.08.2006, 09:24  
zelanez
Вид на жительство
 
Регистрация: 23.04.2006
Сообщений: 308
Сказал спасибо: 14
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
zelanez на пути к лучшему
По умолчанию

Так... Только вот смысл непонятен - почему нужно явно указывать адрес регистра ADCON0? А вот почему-то TRISA, PORTC - не надо. Да и при запуске преобразования ещё несколько регистров задействуется. Ведь есть же хедер, там должно быть всё описано.
Например в Асме - не нужно указывать адрес служебного регистра, если имя указал.
zelanez вне форума  
Непрочитано 01.08.2006, 17:36  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию

Сообщение от zelanez
Так... Только вот смысл непонятен - почему нужно явно указывать адрес регистра ADCON0? А вот почему-то TRISA, PORTC - не надо. Да и при запуске преобразования ещё несколько регистров задействуется. Ведь есть же хедер, там должно быть всё описано.
Например в Асме - не нужно указывать адрес служебного регистра, если имя указал.
А ты хедер и посмотрел бы , там упоминания о ADCON0
нет .
dosikus вне форума  
Непрочитано 01.08.2006, 18:23  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию

Да и что мешает создать свой хедер ,
или изменить родной ?
Кстати там есть встроенная функция
которая решает твои проблемы
read_adc() при аргументе start_only
она выставляет ADCON0.2
т.е. запускает преобразование.

И тебе решать будешь ли ты юзать
эту функцию или напишишь свой драйвер
работы с ADC.
Странно другое, почему у Шпака ее в проекте нет.
dosikus вне форума  
Непрочитано 02.08.2006, 20:01  
zelanez
Вид на жительство
 
Регистрация: 23.04.2006
Сообщений: 308
Сказал спасибо: 14
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
zelanez на пути к лучшему
По умолчанию

А я-то понял так, что аргумент (start_only) Только запускает преобразование, при этом результат не возвращается. Т.е. read_adc() ничего не даст.
Но проверить это ничто не мешает, чем и займусь.
Насчёт редактирования хедера - и что, я и это должен делать?! 8O
Всё-таки среду для асма делали более разумные люди.
zelanez вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CCS PICC+ TERMINAL Gladkih Микроконтроллеры, АЦП, память и т.д 0 24.07.2009 23:30
CCS PICC 4.088 dosikus Микроконтроллеры, АЦП, память и т.д 12 19.06.2009 21:23
CCS PICC 4.037 fmssp Proteus, KiCAD и другие ECAD 10 18.05.2007 20:25
CCS-PICC и EEPROM double_dash Микроконтроллеры, АЦП, память и т.д 1 22.04.2007 01:57
о CCS-PICC double_dash Proteus, KiCAD и другие ECAD 1 02.03.2007 23:19


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


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