Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите записать в ОЗУ ATMEGA8
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
mobira
Объясните,по какому алгоритму писать в ОЗУ сигнал поданный на ножку порта.
Параметры сигнала: скорость 2400 бод,объем 150 кбайт.

Составил программу на ассемблере,вроде ОЗУ пишет,а при считывании на выходе совсем не то что было подано.
WHALE
Ниче не понял.Какой входной сигнал-какой-то асинхронный протокол?uart совместимый?И что-бы писать в ОЗУ сигнал обьемом 150кб,нужно иметь ОЗУ обьемом не меньше чем 150кб.
chief_olimp
Цитата(mobira @ Aug 8 2006, 20:25) *
Объясните,по какому алгоритму писать в ОЗУ сигнал поданный на ножку порта.
Параметры сигнала: скорость 2400 бод,объем 150 кбайт.

Составил программу на ассемблере,вроде ОЗУ пишет,а при считывании на выходе совсем не то что было подано.

ну со скоростью понятно но вот 150 кбайт засунуть в 1 кбайтное ОЗУ это уже проблема....
давай может сначала либо сам подумаешь, либо изложишь суть подробнее, а то из выше сказанного мало что понятно пока...
mobira
! Прошу прощения,напутал! Объем 150 байт. Сигнал асинхронный.

Сейчас я опрашиваю с задержкой ножку порта на которую приходит сигнал,пишу побитно в регистр и отправляю его в ОЗУ. Что-то вроде цифрового магнитофона.

Не совместим с UART.
WHALE
дык ты нам скажи,что за сигнал-старт-стоп биты есть?
mobira
В начале посылки всегда передаются 9 байт со сброшенным 9м битом и 6 байт с установленным 9м битом.

Посылка заканчивается передачей 3 байт с установленным 9м битом.

Информация в байтах вначале и в конце посылки всегда одинаковая.
chief_olimp
Цитата(mobira @ Aug 8 2006, 21:36) *
В начале посылки всегда передаются 9 байт со сброшенным 9м битом и 6 байт с установленным 9м битом.

Посылка заканчивается передачей 3 байт с установленным 9м битом.

Информация в байтах вначале и в конце посылки всегда одинаковая.

можно поконкретней что за информация? нужно ли писать 9 бит?
дело в том что с 8 битами до ужаса просто. Перед началом передачи устанавливаем начальный адрес ОЗУ в Z,Y или Z парах регистров, а дальше в обработчике прерывания пишем принятый байт по адресу с пост инкрементом адреса
нужно больше информации...
mobira
Внимательно изучил осциллограмму сигнала. Прояснилось,что в каждом фрэйме есть старт бит, 9 бит данных, parity бит и два стоп бита.
Получается что это UART. Надо быть мне повнимательнее wacko.gif

Если включить в Атмеге8 UART,она сама будет выделять из фрэйма 9 бит данных?
Тогда в память нужно писать 9 бит.
WHALE
Во,уже легче,задача намного упрощается.В AVR есть режим приема 9-битного фрейма-смотри даташит.
Удачи.
mobira
Спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.