|
|
  |
Запуск Mega162 |
|
|
|
Nov 1 2008, 16:49
|

Местный
  
Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423

|
Цитата(Nanobyte @ Nov 1 2008, 20:03)  Программу бы привели, тут с телепатией туго  Как оказалось не работет таймер, написал просто задержки на щётчиках то пошло, а надо на таймере Код //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 ???
Сообщение отредактировал west329_ - Nov 1 2008, 16:50
|
|
|
|
|
Nov 1 2008, 18:02
|

Местный
  
Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423

|
Цитата(esaulenka @ Nov 1 2008, 21:09)  А что, интересно, написано в даташите на 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С(выключаю совместимость) всё тухнет ???
Эскизы прикрепленных изображений
|
|
|
|
|
Nov 1 2008, 18:39
|

Частый гость
 
Группа: Свой
Сообщений: 158
Регистрация: 6-08-07
Из: Moscow
Пользователь №: 29 586

|
Цитата ...как только ставлю галочку М161С(выключаю совместимость)... Посмотрите на скриншоте в нижней части окошка: checked items means programmed (bit=0). Всё правильно. Поставив галочку, вы программируете бит совместимости. Такая вот небольшая путаница у AVR с фьюзами...
|
|
|
|
|
Nov 1 2008, 19:43
|

Местный
  
Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423

|
Цитата(SysRq @ Nov 1 2008, 23:37)  Неа. avreal (ключ -o0) + комп с набортным LPT + программатор "5 проводков". Обясните почему ? А схему программатора можно ? А я подумал что попал в диапазон (External Low-frequency Crystal) к контроллеру у меня прикручен 7.323 кфарц, может для начала поставить вместо него какойто от часов на 36кгц, или я ошибаюсь ???
Сообщение отредактировал west329_ - Nov 1 2008, 19:50
|
|
|
|
|
Nov 1 2008, 20:07
|

Местный
  
Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423

|
Цитата(SysRq @ Nov 1 2008, 23:50)  Это позволит перешить\переконфигурировать фьюзы МК без перепайки кварца. Сам avreal (через LPT) будет выступать в качестве внешнего генератора. Благодарю за помощь и поддержку.  А я уже тачал волноватся, мне кварц проще заменить чем паяться с новым программатором, ладно попробую уже завтра поменять кварц, если не поможет буду собирать 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 -
Сообщение отредактировал west329_ - Nov 1 2008, 20:11
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|