Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
24.05.2008, 09:19
|
|
Прохожий
Регистрация: 05.01.2008
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Взаимодействие USART МК PIC16F877 и модема
Подскажите, как быть. Пытаюсь микроконтроллером через USART посылать AT-команды модему. Взаимодействует МК с модемом через RS-232, разъем DB25. Если подключить МК к компу, то через гипернал видно - команды отображаются корректно, с заданными интервалами. а модем не реагирует на эти команды. если подключаю модем к компу и посылаю те же команды гипертерминалом, то все работает. Модем Acorp-56emsf-2. Прошивка написана на С, компилятор HI-TECH PICC, писала в MPLAB IDE.
В архиве исходник.
Прикрепленный файл: 4360337.rar
|
|
|
|
24.05.2008, 15:17
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
Посмотрел - какое-то двойственное чувство - с одной стороны, вроде бы красиво написано, а с другой - Вы разрушаете контекст в прерывании, подставляя return в конце. Ничего этого не нужно, компилятор делает сам.
Код:
|
static void interrupt isr()
{
if(T0IF == 1)
{
TMR0 = 206; //таймер 10 мкс
T0IF = 0;
TIME0++;
// return; не нужно
}
else if(TMR1IF == 1)
{
TMR1ON = 0;
TMR1L = 0b00110000; //таймер 0.01 c
TMR1H = 0b11001111;
TMR1IF = 0;
TMR1ON = 1;
TIME1++;
// return; не нужно
}
// else return; не нужно
} |
Советую помучить прогу в протеусе - через виртуальный ком-порт, обычно так делают.
|
|
|
|
25.05.2008, 06:52
|
|
Прохожий
Регистрация: 05.01.2008
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Убрала из кода return-ы, не помогло. Через гипертерминал работает все хорошо, и прием и передача, модем же вообще не отвечает на команды.
Обнаружила вот такую штуку: если тестером проверять TX и RX микроконтроллера (уже с учетом того, что сигналы переконвертированы микросхемой MAX232A), то на них держится -7,9 В и -9,3 В соответственно. А при подключении к модему на них держится -9,8 В и 0,04 В соответственно. Может поэтому и не хочет работать.
|
|
|
|
25.05.2008, 11:11
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
Смотрел Вашу схему на микрочипе - все включено правильно. Протеус даст ответ - из-за чего нет обмена.
ЗЫ. 22 года ? Судя по качеству Вашего кода, Вы не деффачко, а бородатый одмин. Я и себе оттуда пару вещей стянул...
|
|
|
|
25.05.2008, 11:20
|
|
Прохожий
Регистрация: 05.01.2008
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Спасибо за комплимент И за советы тоже. Проблему я решила. Просто устройство мое было настроено как DCE устройство, поэтому контачило с компом (DTE) и не желало с себе подобным, то бишь с DCE. Перепаяла Rx и Tx на разъеме контроллера и все заработало.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:47.
|
|