Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Запуск Mega162
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
west329_
Пытаюсь запустить мегу, повесил светодиод на порт РА3.
Набросал простую программу чтоб портом управлять, повесил на тамер и перекидываю полярность на порту.

Как всегда с первого раза незаработало.

По даташиту. Отключил совместимость с М162
Отключил жтаг.

Результат тот-же темнота.

Подскажите куда рыть дальше ?

С ув.
Nanobyte
Программу бы привели, тут с телепатией туго smile.gif
west329_
Цитата(Nanobyte @ Nov 1 2008, 20:03) *
Программу бы привели, тут с телепатией туго smile.gif


Как оказалось не работет таймер, написал просто задержки на щётчиках то пошло, а надо на таймере
Код
//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 ???
esaulenka
Цитата
что интересно компилятор ругается на GIMSK ???


А что, интересно, написано в даташите на ATmega162 про GIMSK ? wink.gif
west329_
Цитата(esaulenka @ Nov 1 2008, 21:09) *
А что, интересно, написано в даташите на ATmega162 про GIMSK ? wink.gif


Согласен, в даташите его нету но я его туда не писал его туда впихнул помощник ИСС, поэтому решил переспросить может я чтото не понял.

Кстати всё заработало если убрал птичку в Понипрог в бите М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
Цитата
...как только ставлю галочку М161С(выключаю совместимость)...


Посмотрите на скриншоте в нижней части окошка: checked items means programmed (bit=0).

Всё правильно. Поставив галочку, вы программируете бит совместимости. Такая вот небольшая путаница у AVR с фьюзами...
west329_
Возможно ли убить мегу если неправильно выставить фьюы

по умолчанию было так 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


как всегда всё потухло вобщее, что делать подскажите, тащить внешний генератор ???
SysRq
Цитата(west329_ @ Nov 1 2008, 22:31) *
..тащить внешний генератор ???
Неа. avreal (ключ -o0) + комп с набортным LPT + программатор "5 проводков".
west329_
Цитата(SysRq @ Nov 1 2008, 23:37) *
Неа. avreal (ключ -o0) + комп с набортным LPT + программатор "5 проводков".


Обясните почему ?

А схему программатора можно ?

А я подумал что попал в диапазон (External Low-frequency Crystal) к контроллеру у меня прикручен 7.323 кфарц, может для начала поставить вместо него какойто от часов на 36кгц, или я ошибаюсь ???
SysRq
Цитата(west329_ @ Nov 1 2008, 22:43) *
Обясните почему ?
Это позволит перешить\переконфигурировать фьюзы МК без перепайки кварца. Сам avreal (через LPT) будет выступать в качестве внешнего генератора.

http://www.ln.com.ua/~real/avreal/adapters.html#FBPRG
west329_
Цитата(SysRq @ Nov 1 2008, 23:50) *
Это позволит перешить\переконфигурировать фьюзы МК без перепайки кварца. Сам avreal (через LPT) будет выступать в качестве внешнего генератора.


Благодарю за помощь и поддержку.

wassat.gif А я уже тачал волноватся, мне кварц проще заменить чем паяться с новым программатором, ладно попробую уже завтра поменять кварц, если не поможет буду собирать 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_
Поставил часовой кварц, но программатор с контроллером работать отказался sad.gif

У меня рядом лежит девайс с нормально работающим контроллером на 7 мгц, можно от него запитать тактовый генератор меги, или не получется ?
SysRq
Цитата(west329_ @ Nov 2 2008, 10:57) *
Поставил часовой кварц, но программатор с контроллером работать отказался sad.gif

Частоты MOSI\MISO\SCK с программатора должны быть ниже (в два раза, вроде?) частоты тактирования МК.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.