Вообщем использую я 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; } }
|