Tiny13 и 26 - программа из 3 строк работает по разному

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Родился
Сообщения: 2
Зарегистрирован: Вт апр 14, 2009 16:17:25

Сообщение pushka »

Добрый день всем.

Помогите новичку.
Я пробую моргать светодиодиком с помощью примера программы найденного вот тут http://icmicro.narod.ru/avr/avr.htm. Компилирую в AVR Studio - там же пытаюсь отлаживать написанное.
Искомые три строки:

Код: Выделить всё


        cbi     PORTB,0 ; Гасим вывод PB0
        ldi     fTEMP,0
        rcall   Big_delay ; Задержка около 200 мс.

На tiny13 все работает. Дебаг в AVR Studio работает как ожидается.
НО! Если в AVR Studio поставить целевым чип ATTiny26 то выход из подпрограммы задержки выкидывает меня .... на начало программы. Причем, судя по тому что светодиодик не зажигается (или просто горит если первой командой стоит sbi ) - в кристалле все происходит ровно так же.
Как такое вообще может быть ? :shock: Что - у них команда RET по разному работает в разных кристаллах ?
Реклама
Открыл глаза
Сообщения: 70
Зарегистрирован: Сб дек 27, 2008 15:40:06

Сообщение pomidor »

наверное, надо стек инициализировать для большой тиньки в самом начале программы

.include "tn26def.inc"
; Для удобства даем регистрам имена.
.def fTEMP =r16
.def fCOUNTER =r17
.def fCOUNTER2 =r18
.cseg ; Сегмент CODE.
.org 0 ; Адрес выполнения первой команды
rjmp start ; Переход на команду по адресу 'start'
; Метка 'start' - это адрес следующей за меткой команды.
start:
ldi r16,RAMEND ;(страница 59 даташита тини26)
out Sp,r16

ldi fTEMP,0b00111110; PB0 - вход, остальные - выход.
out DDRB,fTEMP

итд
Реклама
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

у 13-таньки стек также программый :)))
по выдранным строчкам понять работу программы вряд ли возможно :shock:
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Открыл глаза
Сообщения: 70
Зарегистрирован: Сб дек 27, 2008 15:40:06

Сообщение pomidor »

а у тиньки12 из http://icmicro.narod.ru/avr/avr.htm ? [тут должен был бы стоять смайлик]

не поленился, проверил
на т13 симулятор выдает ворнинг
AVR Simulator: Uninitialized stack pointer used at 0x0005
но прыгает, куда надо (как будто SP инициализирован ), на т26 выдает такой же ворнинг и прыгает туда, куда стакпойнтер неинициализированный показывает - то бишь в 0.

так шта, где-то в симуляторе собака порылась, но предупреждения читать надо и стакпойнтер все-таки инициализировать
Последний раз редактировалось pomidor Вт апр 14, 2009 23:21:01, всего редактировалось 2 раза.
Реклама
Эиком - электронные компоненты и радиодетали
Мучитель микросхем
Аватара пользователя
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

В Tiny11/12 HARDWARE
STACK.
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Реклама
Родился
Сообщения: 2
Зарегистрирован: Вт апр 14, 2009 16:17:25

Сообщение pushka »

Большое спасибо, инициализация стека поставила все на место.
Удивительно что на 13-й все работает без этого.

А что такое Hardware stack и почему это не сделано в старших вариантах МК ?
Реклама
Открыл глаза
Сообщения: 70
Зарегистрирован: Сб дек 27, 2008 15:40:06

Сообщение pomidor »

поищите книжки на http://www.infanata.org/ , найдется что-нить вроде
"Практическое программирование микроконтроллеров
Atmel AVR на языке ассемблера" Ю. Ревич,2008, 384c, 5.7Mb, djvu

http://rapidshare.com/files/190788477/p ... mk_avr.rar
http://natahaus.ifolder.ru/10265793
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

pushka писал(а): А что такое Hardware stack и почему это не сделано в старших вариантах МК ?
это аппаратный стек под который отведено 3 ЯП так что число волженности подпрограмм не может превышать 3х, для старших моделей с обширной перефирией этого явно не достаточно :idea:
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»