Дело в том, что сейчас программирую бегущею строку 8Х48. И возникла проблема: как синхронизировать запись и чтение SRAM (В SRAM я решил отправлять байты переданные по UART).
Текст на матрице мелькает (частота МК - 8 мГц использую внутреннею RC цыпочку), получает данные выводимые на матрицу вовсе не разборчивы((((
не понимаю как вы связываете скорость "мелькания" информации на дисплее с процедурой чтения/записи данных в SRAM. как?
текст выводить на бегущую строку отдельной функцией, а писать в память другой функцией. Зачем их синхронизировать?
можно использовать и одну из пар регистров (X,Y,Z) просто предварительно подгружая в нее 2 байта указателя чтения или записи, в зависимости от того, что вы делаете.
Для этого заводятся отдельные переменные указателей записи/чтения.
не понимаю как вы связываете скорость "мелькания" информации на дисплее с процедурой чтения/записи данных в SRAM. как?
текст выводить на бегущую строку отдельной функцией, а писать в память другой функцией. Зачем их синхронизировать?
ХА! Если передаю данные без прерывно ? то на чтение вообще времени не будет у МК !
А вить еще кучу всего нужно сделать, например: Прочитать по Байтно SRAM затем отправить на 74HC595.
с какой скоростью вы беспрерывно передаете данные? куда по-вашему они должны отображаться? глаз человека видит максимум 24 кадра в секунду.
какая у вас скорость передачи (байт/секунду), частота передачи (пакетов/секунду) , длина пакета (байт), что за данные вообще (для обработки или тупо для отображения) ?
у всех работают бегущие строки, даже на меньших частотах, а у вас вдруг почему то не хватает процессорного времени - вывод из этого только один - вы неправильно организуете процесс)
я хочу вам помочь правильно его организовать, поэтому мне надо знать что вообще вы делаете и чего хотите добиться.
вот примерный алгоритм:
1) запускаем таймер для вывода информации на регистры сдвига (595)
(на какой именно интервал - надо рассчитать на основе примененной схемы соединения регистров) и по его прерыванию читаем данные и выдаем их в регистры. после этого опять ждем прерывания.
2) включаем приемник UART и по прерыванию по окончанию приема записываем данные в память. после этого опять ждем приема.
3) в главном цикле тупим и ничего не делаем)))
уточнение будет, когда напишете детали
Это я оценил вашу реакцию на мои вопросы. Вы ни на один не ответили. Если вам нужна помощь другого человека, научитесь формулировать свои вопросы, а также ответы на поставленные вопросы.
Уважаемые Коты помогите разобраться с регистрами sfr для AT89С2051, мне всего то нужно в СИ - записать один байт и прочитать его. Из PDF ничего толком не понял. Какими командами это можно сделать? Переменную k хочу хранить в энергонезависимой памяти. Вот мой кусочек программы:
//Keypad Connections:
sbit S0=P2^4; //T
sbit S1=P2^3; //T+F
sbit S2=P2^2; //F
[uquote="santos29",url="/forum/viewtopic.php?p=3105274#p3105274"]Уважаемые Коты помогите разобраться с регистрами sfr для AT89С2051, мне всего то нужно в СИ - записать один байт и прочитать его. Из PDF ничего толком не понял. Какими командами это можно сделать? Переменную k хочу хранить в энергонезависимой памяти. Вот мой кусочек программы: ...
....
Всем спасибо за ответ![/uquote]
МЛИН!!!
А ничего такого не заметно, что AT89С2051
НЕ АВР, а MCS51
и соответственно компилятор СИ и среда разработки иная чем для АВРок требуется??