Сб июн 09, 2012 13:33:08
Сб июн 09, 2012 13:38:07
Сб июн 09, 2012 13:41:12
Engineer_Keen писал(а):Стек проинициализировать? Не... не слышал.
Сб июн 09, 2012 14:17:48
во первых у ATmega8 есть не только SPL, но и SPНVova777 писал(а):Вроде бы в пятой студии инициализируется автоматически по-умолчанию......
.......Я прошил микроконтроллер ATmega8L-8PU
Сб июн 09, 2012 14:34:07
Сб июн 09, 2012 14:50:58
.macro outi
ldi r16,@1
.if(@0 > 0x3F)
sts @0,r16
.else
out @0,r16
.endif
.endm
outi SPL,low(RAMEND) ; init stack
outi SPH,high(RAMEND)
Сб июн 09, 2012 14:57:52
Сб июн 09, 2012 15:00:14
Аффтар, жжёшь ! Давай исчо !у меня в программе нет слова Start
Сб июн 09, 2012 15:01:23
Аlex писал(а):Аффтар, жжёшь ! Давай исчо !
Сб июн 09, 2012 15:02:40
А причём тут вопрос ? Вы даже не знаете что у Вас в программе находится.конечно мои вопросы могут показаться тупыми
Сб июн 09, 2012 15:03:05
Аlex писал(а):А причём тут вопрос ? Вы даже не знаете что у Вас в программе находится.конечно мои вопросы могут показаться тупыми
Сб июн 09, 2012 15:09:09
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)
Сб июн 09, 2012 21:54:30
Сб июн 09, 2012 21:59:34
ChipKiller писал(а):Vova777 советую привыкать использовать макросы и именованные константы, иначе, когда программа перерастет за сотню строк, разобраться в ней будет непросто.....
Сб июн 09, 2012 22:06:32