Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Работа с STK500 и STK501
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
fpmoleg
Привет всем.

Купил был отладочный комплект 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.

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

Извечный вопрос: что делать ?
GDI
убрать ретурн из майна, и в цикл что то внести, например завести переменную и там ее инкрементировать, а то может у вас оптимизатор просто выкинул пустой цикл а за ним сразу ретурн стоит, вот программа и завершается. А еще лучше не тупо ставить в порты единицы, а светодиодами помигать, наверняка есть соответствующий пример в комплекте или на просторах интернет его можно отыскать, или самому сварганить.
Кстати для кварца я ставлю всегда самое долгое время старта, т.е. 16КСК+65мс
fpmoleg
Цитата(GDI @ Oct 4 2007, 17:18) *
убрать ретурн из майна, и в цикл что то внести, например завести переменную и там ее инкрементировать, а то может у вас оптимизатор просто выкинул пустой цикл а за ним сразу ретурн стоит, вот программа и завершается. А еще лучше не тупо ставить в порты единицы, а светодиодами помигать, наверняка есть соответствующий пример в комплекте или на просторах интернет его можно отыскать, или самому сварганить.
Кстати для кварца я ставлю всегда самое долгое время старта, т.е. 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 сигналы от кварца поступают.
Фьюзы прошивал и читал все данны совпадают.
Kuzmi4
На счёт сигналов 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);
}

то всё должно работать, если с фузами не напутали, я их обычно сам высталяю без калькуляторов- не доверяю я им...
aesok
Цитата(fpmoleg @ Oct 4 2007, 15:26) *
Использую ма ATmega128L.

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


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

Анатолий.
bzx
Цитата(GDI @ Oct 4 2007, 18:18) *
...а то может у вас оптимизатор просто выкинул пустой цикл а за ним сразу ретурн стоит...

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

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

она снята.

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

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

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

Всем еще раз спасибо. Как говорилась была ошибка в настройках. Я не правильно немного осциллограф настроил. Все работает smile.gif
vladimir_orl
В STK500 при работе с дополнительным RS232 надо его выводы проводами подключить к нужным пинам микроконтроллера. В мануале это написано.
ataradov
QUOTE (vladimir_orl @ May 28 2018, 23:18) *
В STK500 при работе с дополнительным RS232 надо его выводы проводами подключить к нужным пинам микроконтроллера. В мануале это написано.

Теме 11 лет. Кому этот ответ может помочь?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.