Мелкие вопросы по МК и ПЛИС.
Итак, мои мелкие вопросы
Имеется самопальная макетная плата под мегу 16 , с МАХ232 на борту
Сейчас подключена к матрице светодиодов 7х8 : столбцы к порту B а строки к порту C
Уже много чего делал на этой плате, но споткнулся об "бегущую строку" (пока правда из одного символа
)
на матрицу выводится большая цифра "1", а с компьютера её можно двигать вправо - влево нажатиями кнопок 4 и 6,(передача сигнала с компьютера на мк по уарту)причём при вдвижении её за границу экрана она вылезает с противоположной стороны (по крайней мере должна) А на самом деле получается так - я вдвигаю её за экран, она действительно появляется на другой стороне, но на строку ниже
это одинаково и при движении вправо или влево.
Соответственно после нескольких сдвиганий она вообще пропадает с экрана
Программа вся на асме, ибо я пишу только на асме, а си мне не очень интересен....
Просьба помочь с устранением этого глюка
P.S. я подозреваю что это из-за сдвигания строк через команды rol/ror,Но не придумал алгоритма без этих команд......
Соответственно исходники прилагаются
Имеется самопальная макетная плата под мегу 16 , с МАХ232 на борту
Сейчас подключена к матрице светодиодов 7х8 : столбцы к порту B а строки к порту C
Уже много чего делал на этой плате, но споткнулся об "бегущую строку" (пока правда из одного символа
на матрицу выводится большая цифра "1", а с компьютера её можно двигать вправо - влево нажатиями кнопок 4 и 6,(передача сигнала с компьютера на мк по уарту)причём при вдвижении её за границу экрана она вылезает с противоположной стороны (по крайней мере должна) А на самом деле получается так - я вдвигаю её за экран, она действительно появляется на другой стороне, но на строку ниже
Соответственно после нескольких сдвиганий она вообще пропадает с экрана
Программа вся на асме, ибо я пишу только на асме, а си мне не очень интересен....
Просьба помочь с устранением этого глюка
P.S. я подозреваю что это из-за сдвигания строк через команды rol/ror,Но не придумал алгоритма без этих команд......
Соответственно исходники прилагаются
- Вложения
-
- code.asm.txt
- Исходники
- (7.01 КБ) 341 скачивание
- Negor
- Вымогатель припоя
- Сообщения: 586
- Зарегистрирован: Ср мар 07, 2007 22:58:02
- Откуда: Черкассы, Украина
- Контактная информация:
Впринципе возможно что ты не учёл того что при сдвиге ты не учёл что сдвиг выполняется через С бит... я когда делал бегущий огонёк, то заметил что огонёк беребегает не сразу на начало а один такт как бы ничего не горит... обрати на это внимание... хотя это так - первое что пришло в голову
There is only 10 kind of people: those who understands binary code and those who dont!!!
да, я понимаю, что дело в переносе через флаг С, но помоему операция выполняется за один такт? тоесть единица вытесняется в флаг С, и на том же такте входит в начало регистра?
я пробовал обнулять флаг С после сдвига, но это просто приводило к полному стиранию единицы при выхождении за пределы экрана.....
Так возможен ли сдвиг при помощи этих команд, или придётся искать другой путь?
Непонятно, как решить эту задачу другим алгоритмом
а в инете искать - это совершенно бесполезно, ибо ничему не научусь
А моя цель - не собрать что-то конечное а полнее изучить мк.......
Так что жду помощи с алгоритмом.......
я пробовал обнулять флаг С после сдвига, но это просто приводило к полному стиранию единицы при выхождении за пределы экрана.....
Так возможен ли сдвиг при помощи этих команд, или придётся искать другой путь?
Непонятно, как решить эту задачу другим алгоритмом
А моя цель - не собрать что-то конечное а полнее изучить мк.......
Так что жду помощи с алгоритмом.......
Ustanovil VMLAB (vse kak v obu4alke http://avr!23.nm.ru/ )sdelal 1 shag, 2 shag no svetofor ne zagoraetsja, v 4em mozet bitj delo?
- KOSTYA
- Вымогатель припоя
- Сообщения: 607
- Зарегистрирован: Пн янв 29, 2007 18:40:53
- Откуда: Украина, Киев
- Контактная информация:
тут возник спорный вопрос, а насколько взаимозаменяемы AT89C51 и AT89S51 вот сдесь товарищь ARV АТ89С51 : Программатор
писал
дело в том что не совсем понятно AT89S51 он дешевле не намного но все же, а ведь до сих пор применяют АТ89С51, хотя можно предположить что применяют потому что есть.
короче запутался я
а вот еще может "взаимозаменяемость" это и предпологает но как насчет работы прошивки написанной к примеру для АТ89С51 залитой a АТ89S51, я так понимаю все должно работать без глюков ??
нашел ответ на свой вопрос С AT89C51 на AT89S51, Можно ли сходу?
всем спасибо
писал
Лучше всего применить AT89S51 - абсолютно то же самое, что и AT89C51 (различия только в лучшую сторону), зато прошивается прямо в системе через простейший адаптер СОМ-порта
дело в том что не совсем понятно AT89S51 он дешевле не намного но все же, а ведь до сих пор применяют АТ89С51, хотя можно предположить что применяют потому что есть.
короче запутался я
а вот еще может "взаимозаменяемость" это и предпологает но как насчет работы прошивки написанной к примеру для АТ89С51 залитой a АТ89S51, я так понимаю все должно работать без глюков ??
нашел ответ на свой вопрос С AT89C51 на AT89S51, Можно ли сходу?
всем спасибо
Последний раз редактировалось KOSTYA Вт дек 11, 2007 14:06:58, всего редактировалось 1 раз.

-
ipkin
- Нашел транзистор. Понюхал.
- Сообщения: 167
- Зарегистрирован: Вт июл 10, 2007 23:15:17
- Откуда: Магнитогорск
Вопрос:
имеется микросхема(видеопроцессор) AN2546FH который управляется микроконтроллером по шине i2c
есть необходимость включить дополнительный режим в видеопроцике
который прошивкой микроконтроллера не поддерживается.
можно ли параллельно шине подключить мк с програмкой который бы включал этот режим.
не будет ли конфликта между двумя мастер-абонентами.
имеется микросхема(видеопроцессор) AN2546FH который управляется микроконтроллером по шине i2c
есть необходимость включить дополнительный режим в видеопроцике
который прошивкой микроконтроллера не поддерживается.
можно ли параллельно шине подключить мк с програмкой который бы включал этот режим.
не будет ли конфликта между двумя мастер-абонентами.
Различные мелкие вопросы
Знаю как файл 1.asm превращается в 1.hex. А возможно ли обратное-
имея файл 1.hex привести его к виду 1.asm? Спасибо!
имея файл 1.hex привести его к виду 1.asm? Спасибо!
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Различные мелкие вопросы
пожалусто.lag2 писал(а):Знаю как файл 1.asm превращается в 1.hex. А возможно ли обратное-
имея файл 1.hex привести его к виду 1.asm? Спасибо!
этот процесс называется дизассемблированием и выполняется, соответственно, дизассемблером.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
В гугле по запросу: ассемблер AVR описание. http://www.google.com/search?client=ope ... 8&oe=utf-8
ПОДСКАЗКА: СМОТРИ ПЕРВУЮ ССЫЛКУ!
ПОДСКАЗКА: СМОТРИ ПЕРВУЮ ССЫЛКУ!
Today fine night...
john_rise писал(а):Спасибо, Mamonth, такого добра я видел достаточно, мне нужно это независимым документом скачать. Без взякого мусора, рекламы и ненужных ссылок, что-бы можно было распечатать.
А сохранить как html документ и убрать несколько лишних строчек?
Или уж совсем детский способ выделить нужное, скопировать в буфер, открыть Word, вставить из буфера?
А вообще добрый совет - освойте технический английский... он не сложный.
По Вашим постам видно что вы человек достаточно знающий.... но в чем проблема, я понять не могу.
Кроме того, где-то в нете валялась та же статься что и на atmel.ru, голый текст... бери и печатай.
Today fine night...
Различные мелкие вопросы
Может быть кто-то где-то встречал русскоязычное описание программы IDA (дизассемблер), подскажите. Спасибо.
Подскажите пожалуйста алгоритм стабилизации тока для блока питания на atmega8.
Делаю так:
if (ZNACH_STAB!=0){ //Режим стабилизации по току
//Если установленное значение не
//не равно 0 то
if (Vdec>ZNACH_STAB) { //если измеренное >установленного то
//не знаю как сделать чтобы если OCR2=0
//то в 255 не уходил
OCR2--; //уменьшить значение напряжения
if (Vdec<ZNACH_STAB) {
OCR2++ ; } }
У меня если измеренное меньше установленного то он сразу OCR2 не на 1 прибавляет, а непонятно на сколько. Т.е. ток сразу на несколько ампер подскакивает
Делаю так:
if (ZNACH_STAB!=0){ //Режим стабилизации по току
//Если установленное значение не
//не равно 0 то
if (Vdec>ZNACH_STAB) { //если измеренное >установленного то
//не знаю как сделать чтобы если OCR2=0
//то в 255 не уходил
OCR2--; //уменьшить значение напряжения
if (Vdec<ZNACH_STAB) {
OCR2++ ; } }
У меня если измеренное меньше установленного то он сразу OCR2 не на 1 прибавляет, а непонятно на сколько. Т.е. ток сразу на несколько ампер подскакивает