Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Тема закрыта

Проблема, по видимому, с прерываниями в программе.

Сб июн 09, 2012 13:33:08

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

тут мой программатор
Вложения
программа.txt
(2.29 KiB) Скачиваний: 272

Re: Проблема, по видимому, с прерываниями в программе.

Сб июн 09, 2012 13:38:07

Стек проинициализировать? Не... не слышал. :dont_know: :facepalm:

Re: Проблема, по видимому, с прерываниями в программе.

Сб июн 09, 2012 13:41:12

Engineer_Keen писал(а):Стек проинициализировать? Не... не слышал. :dont_know: :facepalm:

Вроде бы в пятой студии инициализируется автоматически по-умолчанию :dont_know:

; ================
; Инициализация стека (в AVR Studio 5 инициализируется по умолчанию)
; ldi temp,Ramend ; определение
; out SPL, temp ; верхушки стека
; ================

Re: Проблема, по видимому, с прерываниями в программе.

Сб июн 09, 2012 14:17:48

Vova777 писал(а):Вроде бы в пятой студии инициализируется автоматически по-умолчанию......
.......Я прошил микроконтроллер ATmega8L-8PU
во первых у ATmega8 есть не только SPL, но и SPН
во вторых - все что находится за символом ';' - комментарий
ну и в третьих - конечно скидка на то, что Вы новичок в программировании есть, однако прежде чем задавать вопросы на элементарные вещи - прочитайте книжку .....

Re: Проблема, по видимому, с прерываниями в программе.

Сб июн 09, 2012 14:34:07

Не могли бы вы переделать мою программу так, как надо, чтобы я мог потом посмотреть и понять в чем дело. Прошу вас первый и последний раз что-то сделать за меня.
Я уже читаю книжку

Re: Проблема, по видимому, с прерываниями в программе.

Сб июн 09, 2012 14:50:58

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

у меня в программе нет слова Start

Re: Проблема, по видимому, с прерываниями в программе.

Сб июн 09, 2012 15:00:14

у меня в программе нет слова Start
Аффтар, жжёшь ! Давай исчо ! :))) :))) :)))

Re: Проблема, по видимому, с прерываниями в программе.

Сб июн 09, 2012 15:01:23

Аlex писал(а):Аффтар, жжёшь ! Давай исчо ! :))) :))) :)))

ну если я только начал с этим работать, конечно мои вопросы могут показаться тупыми

Re: Проблема, по видимому, с прерываниями в программе.

Сб июн 09, 2012 15:02:40

конечно мои вопросы могут показаться тупыми
А причём тут вопрос ? Вы даже не знаете что у Вас в программе находится. :)

Re: Проблема, по видимому, с прерываниями в программе.

Сб июн 09, 2012 15:03:05

Аlex писал(а):
конечно мои вопросы могут показаться тупыми
А причём тут вопрос ? Вы даже не знаете что у Вас в программе находится. :)

программа не моя, это пример

Re: Проблема, по видимому, с прерываниями в программе.

Сб июн 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)


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

Re: Проблема, по видимому, с прерываниями в программе.

Сб июн 09, 2012 21:54:30

Vova777 советую привыкать использовать макросы и именованные константы, иначе, когда программа перерастет за сотню строк, разобраться в ней будет непросто.....

Re: Проблема, по видимому, с прерываниями в программе.

Сб июн 09, 2012 21:59:34

ChipKiller писал(а):Vova777 советую привыкать использовать макросы и именованные константы, иначе, когда программа перерастет за сотню строк, разобраться в ней будет непросто.....

я думаю, что в книге, которую я читаю, будет информация по макросам, просто до нее я еще не дошел.

Re: Проблема, по видимому, с прерываниями в программе.

Сб июн 09, 2012 22:06:32

лучшую информацию по макросам можно почерпнуть из справки по AVR Studio
Тема закрыта