west329 0 1 ноября, 2008 Опубликовано 1 ноября, 2008 · Жалоба Пытаюсь запустить мегу, повесил светодиод на порт РА3. Набросал простую программу чтоб портом управлять, повесил на тамер и перекидываю полярность на порту. Как всегда с первого раза незаработало. По даташиту. Отключил совместимость с М162 Отключил жтаг. Результат тот-же темнота. Подскажите куда рыть дальше ? С ув. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nanobyte 0 1 ноября, 2008 Опубликовано 1 ноября, 2008 · Жалоба Программу бы привели, тут с телепатией туго :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
west329 0 1 ноября, 2008 Опубликовано 1 ноября, 2008 (изменено) · Жалоба Программу бы привели, тут с телепатией туго :) Как оказалось не работет таймер, написал просто задержки на щётчиках то пошло, а надо на таймере //ICC-AVR application builder : 01.11.2008 18:04:39 // Target : M162 // Crystal: 1.0000Mhz #include <iom162v.h> #include <macros.h> void port_init(void) { PORTA = 0x00; DDRA = 0x08; PORTB = 0x00; DDRB = 0x00; PORTC = 0x00; DDRC = 0x00; PORTD = 0x00; DDRD = 0x00; PORTE = 0x00; DDRE = 0x00; } //TIMER0 initialize - prescale:1024 // WGM: Normal // desired value: 4Hz // actual value: 4,002Hz (0,1%) void timer0_init(void) { TCCR0= 0x00; //stop TCNT0= 0x0C; //set count OCR0= 0xF4; //set compare value TCCR0= 0x05; //start timer } #pragma interrupt_handler timer0_ovf_isr:iv_TIM0_OVF void timer0_ovf_isr(void) { TCNT0= 0x0C; //reload counter value PORTA ^= 0x08; } //call this routine to initialize all peripherals void init_devices(void) { //stop errant interrupts until set up CLI(); //disable all interrupts port_init(); timer0_init(); MCUCR= 0x00; EMCUCR = 0x00; //GIMSK= 0x00; TIMSK= 0x02; //timer interrupt sources ETIMSK=0x00; GICR= 0x00; PCMSK0=0x00; PCMSK1=0x00; SEI(); //re-enable interrupts //all peripherals are now initialized } // void main(void) { init_devices(); //insert your functional code here... } но проблему это не решило что интересно компилятор ругается на GIMSK ??? Изменено 1 ноября, 2008 пользователем west329_ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 1 ноября, 2008 Опубликовано 1 ноября, 2008 · Жалоба что интересно компилятор ругается на GIMSK ??? А что, интересно, написано в даташите на ATmega162 про GIMSK ? ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
west329 0 1 ноября, 2008 Опубликовано 1 ноября, 2008 · Жалоба А что, интересно, написано в даташите на ATmega162 про GIMSK ? ;) Согласен, в даташите его нету но я его туда не писал его туда впихнул помощник ИСС, поэтому решил переспросить может я чтото не понял. Кстати всё заработало если убрал птичку в Понипрог в бите М161С, уже окончательно запутался включина совместимость или выключена ??? Переехал на IAR подумал может ИСС играется #include <ioavr.h> #include <inavr.h> void timer0_init(void) { TCCR0= 0x00; //stop TCNT0= 0x0C; //set count OCR0= 0xF4; //set compare value TCCR0= 0x05; //start timer /* TCCR0 = 0x00; //stop //10mSec ASSR = 0x00; //set async mode //OCR0 = 0x07; TCCR0 = 0x07; //start timer TIMSK |= 0x01; //ovf T0 active */ } #pragma vector = TIMER0_OVF_vect __interrupt void TIMER0_OVF(void) { //TCNT0 = 0xB9; //0x1A; //reload counter value PORTA ^= 0x08; } void main( void ) { DDRA = 0x08; timer0_init(); TIMSK |= 0x02; //ovf T0 active asm("SEI"); while(1); } Результат тотже в режиме совместимости работает пререывание как только ставлю галочку М161С(выключаю совместимость) всё тухнет ??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
man with no name 0 1 ноября, 2008 Опубликовано 1 ноября, 2008 · Жалоба ...как только ставлю галочку М161С(выключаю совместимость)... Посмотрите на скриншоте в нижней части окошка: checked items means programmed (bit=0). Всё правильно. Поставив галочку, вы программируете бит совместимости. Такая вот небольшая путаница у AVR с фьюзами... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
west329 0 1 ноября, 2008 Опубликовано 1 ноября, 2008 · Жалоба Возможно ли убить мегу если неправильно выставить фьюы по умолчанию было так CKSEL3..0 -- 0010 я поставил так -- 0110 таблица из даташита Device Clocking Option CKSEL3..0 External Crystal/Ceramic Resonator 1111 - 1000 External Low-frequency Crystal 0111 - 0100 Calibrated Internal RC Oscillator 0010 External Clock 0000 Reserved 0011, 0001 как всегда всё потухло вобщее, что делать подскажите, тащить внешний генератор ??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NullPointer 0 1 ноября, 2008 Опубликовано 1 ноября, 2008 (изменено) · Жалоба ..тащить внешний генератор ??? Неа. avreal (ключ -o0) + комп с набортным LPT + программатор "5 проводков". Изменено 1 ноября, 2008 пользователем SysRq Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
west329 0 1 ноября, 2008 Опубликовано 1 ноября, 2008 (изменено) · Жалоба Неа. avreal (ключ -o0) + комп с набортным LPT + программатор "5 проводков". Обясните почему ? А схему программатора можно ? А я подумал что попал в диапазон (External Low-frequency Crystal) к контроллеру у меня прикручен 7.323 кфарц, может для начала поставить вместо него какойто от часов на 36кгц, или я ошибаюсь ??? Изменено 1 ноября, 2008 пользователем west329_ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NullPointer 0 1 ноября, 2008 Опубликовано 1 ноября, 2008 (изменено) · Жалоба Обясните почему ?Это позволит перешить\переконфигурировать фьюзы МК без перепайки кварца. Сам avreal (через LPT) будет выступать в качестве внешнего генератора. http://www.ln.com.ua/~real/avreal/adapters.html#FBPRG Изменено 1 ноября, 2008 пользователем SysRq Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
west329 0 1 ноября, 2008 Опубликовано 1 ноября, 2008 (изменено) · Жалоба Это позволит перешить\переконфигурировать фьюзы МК без перепайки кварца. Сам avreal (через LPT) будет выступать в качестве внешнего генератора. Благодарю за помощь и поддержку. :wassat: А я уже тачал волноватся, мне кварц проще заменить чем паяться с новым программатором, ладно попробую уже завтра поменять кварц, если не поможет буду собирать STK200/300. А как тогда надо было установить фьюзы на кварц 7....мгц 1101 ??? дополнительная таблица из даташит CKSEL3:1 Frequency Range (MHz) 100 0.4 - 0.9 101 0.9 - 3.0 110 3.0 - 8.0 111 8.0 - Изменено 1 ноября, 2008 пользователем west329_ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
west329 0 2 ноября, 2008 Опубликовано 2 ноября, 2008 (изменено) · Жалоба Поставил часовой кварц, но программатор с контроллером работать отказался :( У меня рядом лежит девайс с нормально работающим контроллером на 7 мгц, можно от него запитать тактовый генератор меги, или не получется ? Изменено 2 ноября, 2008 пользователем west329_ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NullPointer 0 2 ноября, 2008 Опубликовано 2 ноября, 2008 · Жалоба Поставил часовой кварц, но программатор с контроллером работать отказался :( Частоты MOSI\MISO\SCK с программатора должны быть ниже (в два раза, вроде?) частоты тактирования МК. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться