система дистанционного управления на ATtiny 2313 "c нуля"
| |
uwrtey | Дата: Среда, 26.12.2012, 19:57 | Сообщение # 466 |
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Статус: Offline
| ой, исправил так-же исправил наименования регистров...
если тебя устраивает то, что я "соорудил", то я попробую написать чтение данных из озу и включение светодиодов... если не устраивает, то буду исправлять ( или дополнять ).....
не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Среда, 26.12.2012, 20:02 |
|
| |
uwrtey | Дата: Четверг, 27.12.2012, 11:08 | Сообщение # 467 |
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Статус: Offline
| о-о ! я тут нашел еще одну очень критичную ошибку! я зачем то сохраняю в озу imp_len.. ( мне понадобится уже не 40 байт а 80 !!! ) ну вот, я кажется понял для чего нужен флаг фазы... ( доходит как до жирафа... )
пошел редактировать код
не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Четверг, 27.12.2012, 11:09 |
|
| |
ВитГо | Дата: Четверг, 27.12.2012, 19:56 | Сообщение # 468 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| неее, это не ошибка, это оптимизация
Виталий (аka ВитГо)
|
|
| |
uwrtey | Дата: Четверг, 27.12.2012, 23:03 | Сообщение # 469 |
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Статус: Offline
| ну вот теперь в оперативку записываются только значения принятых пауз ( то-есть только 40 значений ) сейчас попробую еще сократить код ( уж слишком много в нем повторяющихся элементов )
не успеваю за своими мыслями......
|
|
| |
uwrtey | Дата: Четверг, 27.12.2012, 23:20 | Сообщение # 470 |
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Статус: Offline
| вот, теперь я еще существенно сократил код. ( как видишь процедуру сравнения сделал в виде подпрограммы)
не успеваю за своими мыслями......
|
|
| |
ВитГо | Дата: Пятница, 28.12.2012, 05:18 | Сообщение # 471 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| ну теперь нужно попробовать добавить вывод буфера ОЗУ на экран!
прямо все 40 байт просто отправить на печать !
ааа, еще нужен счетчик принятых бит - чтобы четко представлять момент когда нужно выводить данные на экран (чтобы выводить весь пакет после принятия)
Виталий (аka ВитГо)
|
|
| |
uwrtey | Дата: Пятница, 28.12.2012, 08:51 | Сообщение # 472 |
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Статус: Offline
| Цитата ааа, еще нужен счетчик принятых бит - чтобы четко представлять момент когда нужно выводить данные на экран (чтобы выводить весь пакет после принятия) дак он же есть уже !!! .def CounterByteOZU=R23 ; счетчик байтов, записываемых в ОЗУ
не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Пятница, 28.12.2012, 09:51 |
|
| |
ВитГо | Дата: Пятница, 28.12.2012, 11:36 | Сообщение # 473 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| ну тогда в чем дело встало ?
выводи полученные пакеты на экран !
Виталий (аka ВитГо)
|
|
| |
uwrtey | Дата: Пятница, 28.12.2012, 14:19 | Сообщение # 474 |
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Статус: Offline
| ок, на работе я ... Вечером попробую.
не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Пятница, 28.12.2012, 14:42 |
|
| |
uwrtey | Дата: Пятница, 28.12.2012, 23:51 | Сообщение # 475 |
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Статус: Offline
| Представляю на Ваш суд код, "в железе" попробую завтра...
не успеваю за своими мыслями......
|
|
| |
ВитГо | Дата: Суббота, 29.12.2012, 10:28 | Сообщение # 476 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| вот такую конструкцию Код ROR temp ; двигаем байт вправо (циклический сдвиг вправо) BRCC send_zero ; если "С"=0 (перенос очищен), то переход на "send_zero"
обычно не применяют,
есть специальные команды sbrs \ sbrc проверки бита (без изменения значения проверяемого регистра)
далее по коду: Код ROR temp ; двигаем байт вправо (циклический сдвиг вправо) BRCC send_zero ; если "С"=0 (перенос очищен), то переход на "send_zero"
LDI R16, 0x01 ; печать символа '1' RCALL LCD_CHAR rjmp count_40
send_zero:
LDI R16, 0x00 ; печать символа '0' RCALL LCD_CHAR
count_40:
dec temp1 ; уменьшим счетчик битов brne read_bit ; если не все биты, то циклимся
обрати внимание ты опять применяешь одновременно дефайновое обозначение регистра (temp) и его номер (R16) - можешь словить глюки из за этого, причем отловить их будет очень сложно
сам фрагмент можно написать более элегантно (используя команды проверки битов в регистре) Код read_bit: Ld temp2, Z+ ; читаем данные из озу по адресу из "Z"
LDI temp, 0x00 ; символ '0'
sbrc temp2, 0 ; проверяем младший бит, если бит сброшен то следующая команда будет пропущена
LDI temp, 0x01 ; символ '1'
RCALL LCD_CHAR ; печатаем символ
dec temp1 ; уменьшим счетчик битов brne read_bit ; если не все биты, то циклимся
Виталий (аka ВитГо)
|
|
| |
uwrtey | Дата: Суббота, 29.12.2012, 17:22 | Сообщение # 477 |
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Статус: Offline
| Цитата (ВитГо) обрати внимание ты опять применяешь одновременно дефайновое обозначение регистра (temp) и его номер (R16) - можешь словить глюки из за этого, причем отловить их будет очень сложно блин, это я копипастил... (обязательно исправлю) Цитата (ВитГо) есть специальные команды sbrs \ sbrc sbrc погуглил, http://www.gaw.ru/html.cgi/txt/doc/micros/avr/asm/sbrc.htm ( и sbrs http://www.gaw.ru/html.cgi/txt/doc/micros/avr/asm/sbrs.htm здОрово! будем использовать эту команду!
сегодня вечером проверю в железе.....
не успеваю за своими мыслями......
|
|
| |
ВитГо | Дата: Суббота, 29.12.2012, 22:57 | Сообщение # 478 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| давай, я как раз думаю сегодня подольше посидеть за компом. так что пиши если что :-) ну и картинок давно чтото небыло :-)
Виталий (аka ВитГо)
|
|
| |
uwrtey | Дата: Воскресенье, 30.12.2012, 09:58 | Сообщение # 479 |
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Статус: Offline
| Пришел с работы и случайно уснул. ( Организм видимо устал, и не спросив меня, отправился смотреть сны ) Так что "в железе" сейчас уже не получится проверить... Только уже днем. ( Все равно - на работу, в этом году, я уже не пойду.)
зачем я проснулся посреди ночи - сам не понимаю, но раз уже проснулся, то подготовлю *.asm и откомпилирую егоДобавлено (30.12.2012, 09:58) --------------------------------------------- Только что прошил МК приемника, на экране пусто!
не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Воскресенье, 30.12.2012, 01:49 |
|
| |
ВитГо | Дата: Воскресенье, 30.12.2012, 11:41 | Сообщение # 480 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| ну как минимум нужно вывести на экран значение захваченных бит данных.. может быть просто одного бита не хватает - вот и висит программа в ожидании...
Виталий (аka ВитГо)
|
|
| |
|