Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Mega8515 не работает
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
mx586
Вообщем использую я ATMega8515.
Процессор не делает того, что я ему запрограммировал. А на выходы, то есть PORTC в листинге стоит 1.5в, вместо 4,7в. (делэй менял в больших диапазонах, скорее всего не он) По схеме процессор соединен с ft8u245bm и сидит на питании от usb. а остальные пины как стояли ещё до прошивки так и остались, кто 0 кто 4,5 в. Вообщем ничего не понял, вроде все по даташиту сделал. Вот в инете нашел ваш форум, помогите плиз советом.

Питание и земля проверил, все пины подцеплины как надо. Используется Кварц на 6Мгц. подцепленный к XTAIL1
Avreal прошивает, и говорит что все ок.
Fuses: OSCCAL = A4, A6, 9D, 9F
BLEV = 1
BODEN = 1
SUT = 2
CKSEL = 0
BLB1 = 3
BLB0 = 3
S8515C = 1
WDTON = 1
CKOPT = 0
EESV = 1
BSIZ = 3
BRST = 1
Пишу программу в ICCAVR.
Взял саму простую чтобы дёргала ногами
//ICC-AVR application builder : 09.05.2005 20:05:18
// Target : M8515
// Crystal: 6.0000Mhz

#include <iom8515v.h>
#include <macros.h>

void port_init(void)
{
PORTA = 0xFF;
DDRA = 0x00;
PORTB = 0xFD;
DDRB = 0x03;
PORTC = 0xFF;
DDRC = 0xFF;
PORTD = 0xFD;
DDRD = 0x03;
PORTE = 0x07;
DDRE = 0x00;
}

//Watchdog initialisation
// prescale: 2048K cycles
void watchdog_init(void)
{
WDR(); //this prevents a timout on enabling
WDTCR = 0x0F; //WATCHDOG ENABLED - dont forget WDR
}

void delay(unsigned int del)
{
unsigned int i;
for (i=0;i<del;i++)
{
WDR();
asm("NOP");
}
}

void main(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
port_init();
watchdog_init();
MCUCR = 0x00;
EMCUCR = 0x00;
GICR = 0x00;
TIMSK = 0x00;
SEI(); //re-enable interrupts
//all peripherals are now initialised

while(1)
{
PORTC = 0x00;
delay(10000);
PORTC = 0xFF;
}
}
SL@V@
Первое, что бросается в глаза - в цикле надо добавить delay():
while(1)
{
PORTC = 0x00;
delay(10000);
PORTC = 0xFF;
delay(10000);
}
mx586
а да))) эта я здесь забыл написать, а так делэй стоит , все равно спасибо.
ещё вопрос к гуру )) а fuse OSCCAL на что влияет? то есть если у мня external clock то мне на него все раво?проверьте плиз мои fuses для external cklock. то такое ощущения что прога просто не запускается
halfdoom
Цитата(mx586 @ May 10 2005, 09:48)
fuse OSCCAL на что влияет? то есть если  у мня external clock то мне на него все раво?проверьте плиз мои fuses для external cklock.  то такое ощущения что прога просто не запускается

Фюзы стоят нормально если вышеуказанный "Кварц" это генератор. OSCCAL нужен только для калибровки внутреннего генератора. Дополнительно уточни состояние
ноги reset.
Alexey_N
Цитата(mx586 @ May 9 2005, 20:10)
А на выходы, то есть PORTC в листинге стоит 1.5в, вместо 4,7в. (делэй менял в больших диапазонах, скорее всего не он)

Кварц на 6Мгц. подцепленный к XTAIL1

*


Значитца стоит у тебя камень. Либо по ресету, либо по отсутствию тактовой (скорее всего).
Это может быть из-за того, что 6 МГц ты хочешь получить от ФТДИ, и забираешь его (совершенно правильно) от ножки ХТОUТ, а тем временем ФТДИ почему-либо не хочет выдавать тактовую... Либо она в суспенде отдыхает, а может вообще вот конкретный кварц не нравится...
В общем - проверь наличие 6 МГц.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.