Перейти к содержанию

Работа с STK500 и STK501

Привет всем.

Купил был отладочный комплект STK500 и STK501. Использую ма ATmega128L.
написал простенькую прогу (использовал winAVR 2007 года)

#include <avr/io.h>
int main(void){
PORTF = (1<<PF7)|(1<<PF6)|(1<<PF5)|(1<<PF4)|(1<<PF3)|(1<<PF2)|(1<<PF1)|(1<<PF0);
DDRF = 0xFF;
while (1){}
return(0);
}

прошивал с помощью AVR Studio выставил фьюзы:

;boot flash section size=4096 words
;Brown-out detection level at VCC=2,7 V
;Brown-out detection enabled
;Ext. Crystal/Resonator High Freq.;Strt-up time: 1K CK+0ms

Проверил осциллографом на портах стоит 0.

Проверял и кварц и напряжение. Все есть все программируется и читается.

Извечный вопрос: что делать ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
убрать ретурн из майна, и в цикл что то внести, например завести переменную и там ее инкрементировать, а то может у вас оптимизатор просто выкинул пустой цикл а за ним сразу ретурн стоит, вот программа и завершается. А еще лучше не тупо ставить в порты единицы, а светодиодами помигать, наверняка есть соответствующий пример в комплекте или на просторах интернет его можно отыскать, или самому сварганить.
Кстати для кварца я ставлю всегда самое долгое время старта, т.е. 16КСК+65мс

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(GDI @ Oct 4 2007, 17:18) <{POST_SNAPBACK}>
убрать ретурн из майна, и в цикл что то внести, например завести переменную и там ее инкрементировать, а то может у вас оптимизатор просто выкинул пустой цикл а за ним сразу ретурн стоит, вот программа и завершается. А еще лучше не тупо ставить в порты единицы, а светодиодами помигать, наверняка есть соответствующий пример в комплекте или на просторах интернет его можно отыскать, или самому сварганить.
Кстати для кварца я ставлю всегда самое долгое время старта, т.е. 16КСК+65мс



по поводу программы я написал так:
#include <avr/io.h>
#include <avr/iom128.h>
void main(void){
int i;
PORTE = (1<<PE7)|(1<<PE6)|(1<<PE5)|(1<<PE4)|(1<<PE3)|(1<<PE2)|(1<<PE1)|(1<<PE0);
DDRE = 0x00;
while(1){
PORTE = 0;
for (i=0;i<1000;i++){
asm volatile("nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
:smile.gif;
}
PORTE = 0xFF;
}
}

По поводу светодиодиков или осцеллографа - это дело вкуса. Если есть сигнал на портах то это видно и осцеллогрофом.
У меня кварц на 7.372МГц, напряжение тоже есть - 4.91 В. На порт XTAL1 сигналы от кварца поступают.
Фьюзы прошивал и читал все данны совпадают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
На счёт сигналов XTAL - я когда осцилографом тыкал на эти лапыи смотрел обработку проги - так лампочками помигать - у меня камень загинался - в принципе думаю ёмкость была у него велика - оттого и так , но другого не было - С65-й вроде..
Касательно приведённого листинга - DDRE -> 0xFF;
а цикл - то до пятой точки - он за микросекунду пролетает если не меньше - его увидеть трудно, лучше
юзать на худой конец _delay_ms(xx)..Если поцепить на лапки светодиоды и зациклить типа так

DDRE=0xFF;
while (1)
{
PORTE=0x00;
_delay_ms(100);
_delay_ms(100);
PORTE=0xFF;
_delay_ms(100);
_delay_ms(100);
}

то всё должно работать, если с фузами не напутали, я их обычно сам высталяю без калькуляторов- не доверяю я им...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(fpmoleg @ Oct 4 2007, 15:26) <{POST_SNAPBACK}>
Использую ма ATmega128L.

Извечный вопрос: что делать ?


А в камом состоянии у вас фюз M103C?

Анатолий.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(GDI @ Oct 4 2007, 18:18) <{POST_SNAPBACK}>
...а то может у вас оптимизатор просто выкинул пустой цикл а за ним сразу ретурн стоит...

Очень на это похоже. В настройках следует поставить '-O0' (выключить оптимизатор). Так же надо посмотреть, что получается при дезасемблировании.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
while (1){} - Это бесконечный цикл, а бесконечные циклы оптимизатором не выкидываються!

Анатолий.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Спасибо всем за ответы, но проблему это не решело. Может где то с настройками не так. Программирую я в режиме внутрисхемного программирования. Ни какой эмитации меги 103 я в фьюзах не ставил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
А ее надо как раз снять, т.к. мега128 поставляется с устаноленным битом эмуляции мега103

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
>А ее надо как раз снять, т.к. мега128 поставляется с устаноленным битом эмуляции мега103

она снята.

Я прошиваю про помощи AVR Studio версии 4.13.

Написанная програ на эмоуляторе работает так что дело не в программе.

Скорее где то в настройках.

Всем еще раз спасибо. Как говорилась была ошибка в настройках. Я не правильно немного осциллограф настроил. Все работает smile.gif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В STK500 при работе с дополнительным RS232 надо его выводы проводами подключить к нужным пинам микроконтроллера. В мануале это написано.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В STK500 при работе с дополнительным RS232 надо его выводы проводами подключить к нужным пинам микроконтроллера. В мануале это написано.

Теме 11 лет. Кому этот ответ может помочь?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти