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

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

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

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

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

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

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

 
Опции темы
Непрочитано 05.06.2007, 12:39  
BlackRabbit
Прохожий
 
Регистрация: 13.03.2007
Сообщений: 4
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
BlackRabbit на пути к лучшему
По умолчанию Помогите!!! Диплом горит.

Здрасте.
Такой проект. Есть коробочка, в которой стоит PIC16F628A. С помощью антены и CCS () передаю строку в антену (fprintf(w, "H
").
Есть база, в которой стоит pe4237 (переключатель). Переключение происходит между антеной и ресивером (RX5000). В датащите к pe4237 написано, что для переключения между RF1 и RF2 нужно подавать HIGH и LOW соответственно. Т. к. к управляющему элементу ресивера подключена ножка PIN_B4, то в CCS я сделал так output_low(PIN_B4) (мне надо получить данные с коробочки на базу). RX5000 подсоединен к PIN_A3. Для получения данный я делаю след. код:
....
char temp = ';
#use rs232(... xmit=PIN_A3, rcv=PIN_A2, stream=W);
temp = fgetc(W);

2 вопроса:
1. правильно ли я переключаюсь с помощью output_low?
2. Можно ли так вообще получать информацию? Может я что - то не так делаю.
Прошу простить меня за дурацкое сообщение, но я начинающий и такую дикломную дали.
Спс.
Реклама:
BlackRabbit вне форума  
Непрочитано 05.06.2007, 19:23  
double_dash
Прописка
 
Аватар для double_dash
 
Регистрация: 15.10.2006
Сообщений: 130
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 1 сообщении
double_dash на пути к лучшему
По умолчанию

getс() (getchar и т.д) - опасная команда,
она ожидает прихода символа из потока,
даже если он вообще никогда не придет...
Т.е. если у вас есть какие то органы управления
вашим аппаратом, их обработка полностью блокируются
на время ожидания символа. Лучше поместить
эту команду в обработчик прерывания RDA.

так я ожидал звонка от сотового:
Код:
#include "D:PicProjects
ew_cell
ew_cell.h"
#include ‹string.h›

char buf[10];

#int_RDA
RDA_isr() 
{
 gets(buf);
 if(strchr(buf,0x52)) 
  {
   output_high(ind_yellow);
  }
}

void main()
{
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   
   enable_interrupts(INT_RDA);
   setup_oscillator(False);
    
   enable_interrupts(GLOBAL);
   
   for(;;);
}
double_dash вне форума  
Непрочитано 06.06.2007, 09:05  
BlackRabbit
Прохожий
 
Регистрация: 13.03.2007
Сообщений: 4
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
BlackRabbit на пути к лучшему
По умолчанию

Спасибо.
Вот еще вопрос: написал програму для передачи и приема символа. Еще раз напомню, для приема на базовом блоке стоит RX5000. Посмотрите пож., и скажите, будет ли происходить прием и передача?

Для отправления:
Код:
#include ‹16f628.H› 
#fuses HS,NOWDT,NOPROTECT 
#use delay(clock=4000000) 
#use rs232(baud=9600, xmit=PIN_A2, rcv=PIN_A3, stream=CLIENT) 

main() {
   while(TRUE)
   {
      fprintf(CLIENT, "%c
", "C");
   }          
}
Для получения:
Код:
#include ‹16f628a.h› 
#include ‹string.h› 
//#fuses HS,NOWDT,NOPROTECT 
#fuses EC_IO, BROWNOUT, PUT, NOLVP 
#use delay(clock=4000000) 
#use rs232(baud=9600, xmit=PIN_A2, rcv=PIN_A3, stream=W) 

unsigned int8 temp;
#int_RDA 
void RDA_isr(void)
{
   temp = getc();
}

main() {  
   output_high(PIN_B7);
   output_low(PIN_B4);
    
   setup_wdt(WDT_18MS);
   setup_comparator(NC_NC_NC_NC); 
   setup_vref(FALSE);
   enable_interrupts(INT_RDA);
   setup_oscillator(False);
   enable_interrupts(global);
    
   while(true)
   {
      #USE RS232(BAUD=9600, XMIT=PIN_B2,RCV=PIN_B1)
      printf("

Data is now available
Data: %u", temp);
   }
}
Отправление данных с клиента происходит тупо по антене. Антена присоединена PIN_A2.
При запуске кода получается, что мне выводится в терминалку сообщение + то, что в переменной temp все время ничего нет.
Что я не так делаю? Может быть большую роль играет то, что я принимаю на ногу PIN_A3?
BlackRabbit вне форума  
Непрочитано 06.06.2007, 19:23  
double_dash
Прописка
 
Аватар для double_dash
 
Регистрация: 15.10.2006
Сообщений: 130
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 1 сообщении
double_dash на пути к лучшему
По умолчанию

ой конечно что то не до конца перевариваю принцип работы вашего усторойства
Ну, как бы насколько я понимаю,
чтобы произошла передача, вам сперва нужно осуществить
манипуляцию выходного сигнала - перемножить выходные ипмпульсы на частоту несущей - амплитудная манипуляция(это чисто для примера, какой у вас детектор на приемной стороне - я не знаю).
А вы отправлете сырые строчки прямо в антенну...
Что же насчет приема - это вы правильно подметили.
Как только вы высталяете в качестве RX и TX порты,
отличные от RB1 и RB2 соответственно, комилятор воспринимает это как то,
что вместо железного USART вы желаете использовать
его программную эмуляцию,
и конечно в этом случае испольовать "прерывание по приходу данных через
RS232"(RDA) - абсолютно бессмыленно.

Последнее обсуждалось здесь:
https://kazus.ru/forum/topics/6392.html
double_dash вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Решено] У меня зеленый 307 св.д при обратном включении горит красным Sexyboy Источники питания и свет 18 03.09.2009 22:59
Почему горит резистор? AlekseyN Источники питания и свет 23 17.07.2009 10:37
Как рассчитать ток потребления схемы? Диплом andrew87z Электроника - это просто 14 04.06.2009 18:01
телевизор panasonic tc-32wg25g горит стр.транзистор slava-isr Видеотехника 3 14.12.2005 03:18


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


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