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

Работа с 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мс

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


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

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

Кстати для кварца я ставлю всегда самое долгое время старта, т.е. 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"

::);

}

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);

}

 

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

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


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

Использую ма ATmega128L.

 

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

 

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

 

Анатолий.

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


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

...а то может у вас оптимизатор просто выкинул пустой цикл а за ним сразу ретурн стоит...

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

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


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

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

 

Анатолий.

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


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

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

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


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

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

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


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

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

 

она снята.

 

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

 

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

 

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

 

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

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


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

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

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


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

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

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

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


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

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...