2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Нужна помощь по мехатронике(микропроцессоры)
Сообщение13.12.2016, 15:54 


03/12/16
3
На лабораторной было задание: зажечь выделенные сегменты(изображение)
Написал код, но он неправильный(не весь, где-то в конкретных местах ошибка). Возможно, ошибки в последовательности зажигания посредством операторов. Много раз исправил, но до сих пор не понимаю, что же не так(Atmel).
Вот сам код:
LDI R16, 0
OUT DDR, R16
LDI R16, 0b00000011
OUT DDR, R16
pro1:
LDI R16, 0b00000001
OUT portB, R16
LDI R16, 0b11000000
OUT port A, R16
rcall Delay
pro 2:
LDI R16, 0b00000010

OUT port B, R16
LDI R16, 0b10000100
OUT port A, R16
rcall Delay
rjump pro1
Вот изображение схемы:
Изображение

 Профиль  
                  
 
 Re: Нужна помощь по мехатронике(микропроцессоры)
Сообщение13.12.2016, 17:05 
Заслуженный участник


20/08/14
11781
Россия, Москва
Если убрать лишние пробелы в именах портов, добавить имена портов в DDR, и писать в DDR регистры не 0, а 0xFF, то программа станет правильной. Последняя ошибка, с 0 вместо 0xFF, весьма характерная, сигнализирует что документацию на процессор вы читали весьма невнимательно.

 Профиль  
                  
 
 Re: Нужна помощь по мехатронике(микропроцессоры)
Сообщение13.12.2016, 17:39 


03/12/16
3
Dmitriy40 в сообщении #1176628 писал(а):
Если убрать лишние пробелы в именах портов, добавить имена портов в DDR, и писать в DDR регистры не 0, а 0xFF, то программа станет правильной. Последняя ошибка, с 0 вместо 0xFF, весьма характерная, сигнализирует что документацию на процессор вы читали весьма невнимательно.

А еще немного поподробнее?

 Профиль  
                  
 
 Re: Нужна помощь по мехатронике(микропроцессоры)
Сообщение13.12.2016, 20:15 
Заслуженный участник


20/08/14
11781
Россия, Москва
Куда ж ещё подробнее. Что именно непонятно? Приведённая вами программа вообще компилироваться не должна из-за синтаксических ошибок (в именах портов и регистрах DDR). И порт А вы на вывод не настроили. Так тоже непонятно? Ну я не знаю как ещё подсказать без переписывания кода за вас.

-- 13.12.2016, 20:20 --

Насколько я знаю ассемблеры для AVR там нигде нет просто регистра DDR и нигде нельзя писать имена портов (port A и port B) с пробелами. Это всё должно давать ошибку компиляции. До запуска программы дело не дойдёт вообще.

-- 13.12.2016, 20:23 --

В метках пробелы тоже вроде бы недопустимы.
И команды rjump тоже нет, есть rjmp.
В таком виде приведённая программа вообще не могла и не должна была запуститься.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Модераторы: photon, profrotter, Парджеттер, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group