реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> PCW нестандартное использоваие RS232, очень надо вкл/выкл сделать аппаратного UART
Eddy71
сообщение May 28 2009, 10:58
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 224
Регистрация: 23-11-08
Из: Украина, Луганск
Пользователь №: 41 879



Собственно весь вопрос в описании темы. Очень надо вкл/выкл сделать аппаратного UART. Просто глупейшая ситуация - пытаюсь отключить аппаратный UART в PIC16F887 но постоянно получаю не то, что хочется. Что-то мне не верится, что в компиляторе не предусмотрели функции при исполнении программы "на лету" включить или выключить модуль EUSART. Я уже через указатели пытался добраться до бита RCSTA,SPEN. Я конечно изгольнулся, вставил
Код
#asm
bcf 0x18,7
#endasm

Но как-то не красиво получается...


--------------------
«Чтобы что-то изобрести, вам потребуется хорошее воображение и куча мусора» /Томас Эдисон/
Go to the top of the page
 
+Quote Post
_Pasha
сообщение May 28 2009, 14:41
Сообщение #2


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Компилятор-то какой? Это имеет значение вот почему: как описаны биты в SFR в хедере на проц - дефайнами или битовыми полями?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 28 2009, 19:54
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(_Pasha @ May 28 2009, 17:41) *
Компилятор-то какой?
Компилятор указан в теме. До знакомства с ним я считал CodeVision эталоном "языка, похожего на С". Но это - просто шедевр. Как вам такое - в нем по умолчанию отключена чувствительность к регистру. То есть что printf, что PRINTF - ему все едино. Есть директива (которую надо вставить в исходник!), которая включает чувствительность. И тут нас ожидает сюрприз - в документации его встроенные функции приведены совсем не в том регистре, в котором он их понимает. И если бы они были только в нижнем или в верхнем... Какая-то дикая смесь из расширений от С++ (перегрузка функций) и отклонений от стандарта С.
Цитата(_Pasha @ May 28 2009, 17:41) *
Это имеет значение вот почему: как описаны биты в SFR в хедере на проц - дефайнами или битовыми полями?
Они там вообще не описаны! Там есть встроенные функции на все, как кажется авторам, случаи жизни. А вот если хочешь нормальный доступ к регистру - пиши что-то вроде
Код
#BYTE RCSTA     = 0x18
#define  SPEN 7
void test()
{
     RCSTA &= ~(1<<SPEN);
}

Для Eddy71 - это все описано в документации. Не поленитесь, прочтите. Там вас ждет еще много сюрпризов.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Eddy71
сообщение May 29 2009, 10:59
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 224
Регистрация: 23-11-08
Из: Украина, Луганск
Пользователь №: 41 879



Я сперва пробежался по pdf-чикам за 2009-й, 2007-й, 2005-й и 2001-й годы. Они малость все отличаются, но нигде не нашел. Насчет СОМа там только "на лету" скорость поменять можно. Ладно, порт отключается, нет так нет...


--------------------
«Чтобы что-то изобрести, вам потребуется хорошее воображение и куча мусора» /Томас Эдисон/
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 05:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.0135 секунд с 7
ELECTRONIX ©2004-2016