Сообщение от kos_ua
|
Чтобы перенастроить прогу на АВР надо изменить ее в следующих местах:
Надо будет эти моменты в программе автоматизировать.
|
По моему нужно сделать немного иначе:
В вашей программе вызывать функцию инициализации таймеров, портов... а в файле конкретного контролера делать эту инициализацию... ПРИМЕР:
в вашей программе:
#define Fclc 8000000 //указать частоту контролера
() INIT_TIMER0(100);//инициализация таймера0 с периодом 100 микросекунд
() INIT_TIMER1(10000);//инициализация таймера1 с периодом 10000 микросекунд
вектор вызова прерывания:
VECTOR_INT_TMR0;//заменяется на синтаксис для нужного компилятора в файле определений контролера
вектор вызова прерывания:
VECTOR_INT_TMR1;//заменяется на синтаксис для нужного компилятора в файле определений контролера
разрешение прерываний общих
GIE();//функция в которой разрешаются общие прпывания
разрешение прерываний таймера
SET_INT_OVF_TMR0();//функция в которой разрешаются прерывания таймера 1
разрешение прерываний таймера
SET_INT_OVF_TMR1();//функция в которой разрешаются прерывания таймера 1
А в фале для AVR:
#define VECTOR_INT_TMR0 #pragma vector=INT0_vect //замена вектора прерывания таймера1 для IAR AVR
#define VECTOR_INT_TMR1 #pragma vector=INT1_vect //замена вектора прерывания таймера1 для IAR AVR
(void)GIE(void);{//разрешение общих прерываний
GIE=1
}
void SET_INT_OVF_TMR0 (void){//разрешение прерывания переполнения таймера1
#define tmr1intovf (1‹‹TOV0) //прерывание по переполнению
TIMSK = TIMSK | (tmr0intovf);}
void SET_INT_OVF_TMR1 (void){//разрешение прерывания переполнения таймера1
#define tmr1intovf (1‹‹TOV1) //прерывание по переполнению
TIMSK = TIMSK | (tmr1intovf);}
(void) INIT_TIMER0(int period);//здесь функция расчёта и загрузки предделителя и таймера 0 значениями для получения периода в зависмости от Fclc
и значения period..
(void) INIT_TIMER1(int period);//здесь функция расчёта и загрузки предделителя и таймера 1 значениями для получения периода в зависмости от Fclc
и значения period..
для IAR AVR это у меня уже написано. И так расписать для каждого семейства контроллеров.
Сообщение от kos_ua
|
Нет обычный загрузчик...ISP
|
под PIC и под AVR есть простенькие программаторы и для USB.