ATTINY2313 + GPRS

Обсуждаем контроллеры компании Atmel.
Ответить
Sheleh
Родился
Сообщения: 14
Зарегистрирован: Пт дек 07, 2007 11:03:14
Контактная информация:

ATTINY2313 + GPRS

Сообщение Sheleh »

Всем привет, ни разу сам не писал под микроконтроллеры, но уже в конец прижало, надо начинать.
В общем ТЗ.
Есть устройство ПКП (охранный прибор) известной фирмы. Работает как автономно, так и в составе сети RS485 под управлением либо аппаратной "бошки", либо ПК.
Собственно необходим контроллер, который бы с одной стороны подключается к такому прибору по RS485, а с другой управлял бы каким-нибудь SIM300, налаживал связь с сервером и передавал бы на него все, что происходит на входе, и наоборот, принимал бы сообщения с сервера и отправлял бы на вход.

Код: Выделить всё

$regfile = "attiny13.dat"                                   'МК Attiny13
$crystal = 9600000                                          'Рабочая частота МК 9.6МГц
$hwstack = 16
$swstack = 16
$framesize = 16
Open "comb.1:9600,8,n,1" For Output As #1                   'Программный UART 1 на PB.3 TXD
Open "comb.2:9600,8,n,1" For Input As #2                    'Программный UART 2 на PB.4 RXD

Open "comb.3:9600,8,n,1" For Output As #3                   'Программный UART 3 на PB.3 TXD
Open "comb.4:9600,8,n,1" For Input As #4                    'Программный UART 4 на PB.4 RXD



Dim Cmd As String * 8

Print #1 , "Program UART 1"
Print #3 , "Program UART 2"


Do


Loop
End


Эмулирую в протеусе, Выводит нормально. Но как к примеру для начала реализовать одновременное ожидание на двух портах?
Что бы если что то пришло в первый, было передано во второй и наоборот? К примеру в делфи есть события типа OnRead, и для каждого пишется свой обработчик. Просто пока я обрабатываю данные на одном порту, как не пропустить что происходит на другом?
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: ATTINY2313 + GPRS

Сообщение uk8amk »

Atmega64, UART 2 штуки. По части приёма-передачи всё аппаратно.

Программно тоже можно навертеть через прерывания от таймера. Но по нормальному нужно придумывать фильтрацию, определение фронтов и восстановление синхронизации. Короче все то чем занимается железо.
Ответить

Вернуться в «AVR»