Новичок
Регистрация: 27.06.2011
Сообщений: 8
Репутация: 10
|
Все привет! Написал я тут простенькую программу для лабораторного блока питания на ATmega8. Вольтметр+Амперметр, семи сегментная индикация на сдвиговых регистрах, контроль за перегревам на DS18B20. Писал на CVAVR, в общем-то всё работает, только с датчик маленькие проблемы, но вопрос не в этом.
Понадобилось мне перевести в AVR Studio, вот тут и началось. Переправил обработчики прерываний, обращения к регистрам порта, код скомпилировался, без ошибок и варненгов, конечно же не заработал Я решил его прописывать постепенно, написал в хлам простую программу, которая через регистр HC164 должна зажигать все сегменты, она то же не заработала, раньше в студии кроме мигания диодом нечего не писал, не понимаю в чём дело. Подскажите где что не так, в моём демо проекте. |
||
Оценка
|
Новичок
Регистрация: 27.06.2012
Сообщений: 4
Репутация: 10
|
у меня такое смутное ощущение, что в регистре у Вас должны лежать единицы, а сейчас лежат одни нули. происходит это от того, что Вы искажаете данные на пине данных D2 в момент обращения к тактовому пину D2.
В человеческом C выражение Код:
PORTD = 0<<PD3; // Ставим в 0 PORTD = 1<<PD3; // Ставим в 1 накладывайте битовую маску аккуратней или используйте битовые поля, как это делается в CVAVR, но тут это нужно делать самостоятельно с помощью дефайнов или каким-нибудь другим методом. мне нравятся битовые маски, которые можно накладывать например так: Код:
PORTD &=~(1<<PD3); // Ставим разряд D3 в 0 PORTD |= 1<<PD3; // Ставим разряд D3 в 1 |
||
Оценка
|
Новичок
Регистрация: 25.05.2014
Сообщений: 31
Репутация: 18
|
Проблема с AVR Studio 4
Здравствуйте.
Не по теме немножко, но я не нашла более подходящей темы. AVR Studio не компилирует исходный текст. А если брать уже откомпилированный проект, то трассировка работает. У меня вопрос к вам : это может быть из за операционной системы компа? У меня стоит 7-ка 64. |
||
Оценка
|
Обратная связь РадиоЛоцман Вверх |