Страница 1 из 1
Проблема, по видимому, с прерываниями в программе.
Добавлено: Сб июн 09, 2012 13:33:08
Vova777
Я прошил микроконтроллер ATmega8L-8PU программой (.hex), которая должна сделать, чтобы светодиоды моргали (программа в Proteus проходит нормально, там все мигает). Прошивается все без проблем, светодиоды горят так, как задано в программе (0b10011001), но они не мигают! Бегущая дорожка тоже не получается.
Что у меня не так? Кварц 4 МГц и 2 конденсатора 22 пФ стоят. Фьюзы не трогал, стоят по-умолчанию. Программа в приложении, писал в AVR Studio 5, компилируется без ошибок, шил через PonyProg, все прошилось нормально (Write Succesful), но они не мигают.
тут мой программатор
Re: Проблема, по видимому, с прерываниями в программе.
Добавлено: Сб июн 09, 2012 13:38:07
Engineer_Keen
Стек проинициализировать? Не... не слышал.

Re: Проблема, по видимому, с прерываниями в программе.
Добавлено: Сб июн 09, 2012 13:41:12
Vova777
Engineer_Keen писал(а):Стек проинициализировать? Не... не слышал.

Вроде бы в пятой студии инициализируется автоматически по-умолчанию
; ================
; Инициализация стека (в AVR Studio 5 инициализируется по умолчанию)
; ldi temp,Ramend ; определение
; out SPL, temp ; верхушки стека
; ================
Re: Проблема, по видимому, с прерываниями в программе.
Добавлено: Сб июн 09, 2012 14:17:48
ChipKiller
Vova777 писал(а):Вроде бы в пятой студии инициализируется автоматически по-умолчанию......
.......Я прошил микроконтроллер ATmega8L-8PU
во первых у ATmega8 есть не только SPL, но и SPН
во вторых - все что находится за символом
';' - комментарий
ну и в третьих - конечно скидка на то, что Вы новичок в программировании есть, однако прежде чем задавать вопросы на элементарные вещи - прочитайте книжку .....
Re: Проблема, по видимому, с прерываниями в программе.
Добавлено: Сб июн 09, 2012 14:34:07
Vova777
Не могли бы вы переделать мою программу так, как надо, чтобы я мог потом посмотреть и понять в чем дело. Прошу вас первый и последний раз что-то сделать за меня.
Я уже читаю книжку
Re: Проблема, по видимому, с прерываниями в программе.
Добавлено: Сб июн 09, 2012 14:50:58
ChipKiller
2 Vova777 в принципе
Engineer_Keen все уже Вам сказал - нет инициализации стека, поэтому после первого-же
call программа "умирает"
теперь об исправлениях - добавьте в начало программы макрос
Код: Выделить всё
.macro outi
ldi r16,@1
.if(@0 > 0x3F)
sts @0,r16
.else
out @0,r16
.endif
.endm
а сразу после метки
Start: напишите
Код: Выделить всё
outi SPL,low(RAMEND) ; init stack
outi SPH,high(RAMEND)
Re: Проблема, по видимому, с прерываниями в программе.
Добавлено: Сб июн 09, 2012 14:57:52
Vova777
у меня в программе нет слова Start
Re: Проблема, по видимому, с прерываниями в программе.
Добавлено: Сб июн 09, 2012 15:00:14
Аlex
у меня в программе нет слова Start
Аффтар, жжёшь ! Давай исчо !

Re: Проблема, по видимому, с прерываниями в программе.
Добавлено: Сб июн 09, 2012 15:01:23
Vova777
ну если я только начал с этим работать, конечно мои вопросы могут показаться тупыми
Re: Проблема, по видимому, с прерываниями в программе.
Добавлено: Сб июн 09, 2012 15:02:40
Аlex
конечно мои вопросы могут показаться тупыми
А причём тут вопрос ? Вы даже не знаете что у Вас в программе находится.

Re: Проблема, по видимому, с прерываниями в программе.
Добавлено: Сб июн 09, 2012 15:03:05
Vova777
Аlex писал(а):конечно мои вопросы могут показаться тупыми
А причём тут вопрос ? Вы даже не знаете что у Вас в программе находится.

программа не моя, это пример
Re: Проблема, по видимому, с прерываниями в программе.
Добавлено: Сб июн 09, 2012 15:09:09
Vova777
ChipKiller писал(а):2 Vova777 в принципе
Engineer_Keen все уже Вам сказал - нет инициализации стека, поэтому после первого-же
call программа "умирает"
теперь об исправлениях - добавьте в начало программы макрос
Код: Выделить всё
.macro outi
ldi r16,@1
.if(@0 > 0x3F)
sts @0,r16
.else
out @0,r16
.endif
.endm
а сразу после метки
Start: напишите
Код: Выделить всё
outi SPL,low(RAMEND) ; init stack
outi SPH,high(RAMEND)
Спасибо, все заработало!

Обещаю больше не задавать тупых вопросов, простите

Re: Проблема, по видимому, с прерываниями в программе.
Добавлено: Сб июн 09, 2012 21:54:30
ChipKiller
Vova777 советую привыкать использовать макросы и именованные константы, иначе, когда программа перерастет за сотню строк, разобраться в ней будет непросто.....
Re: Проблема, по видимому, с прерываниями в программе.
Добавлено: Сб июн 09, 2012 21:59:34
Vova777
ChipKiller писал(а):Vova777 советую привыкать использовать макросы и именованные константы, иначе, когда программа перерастет за сотню строк, разобраться в ней будет непросто.....
я думаю, что в книге, которую я читаю, будет информация по макросам, просто до нее я еще не дошел.
Re: Проблема, по видимому, с прерываниями в программе.
Добавлено: Сб июн 09, 2012 22:06:32
ChipKiller
лучшую информацию по макросам можно почерпнуть из справки по AVR Studio