roboforum.ru

Технический форум по робототехнике.

Помогите с программой "3х фазный ШИМ на ATmega48".

Помогите с программой "3х фазный ШИМ на ATmega48".

neptun19 » 17 дек 2020, 14:18

Всем добра! На "народе" есть статья, "Трехфазный генератор регулируемой частоты" Автор приводит схему, исходник на ассемблере и скомпилированную программу. Но... в исходнике где то ошибка, как и в первой статье автора "Формирователь синусоидального сигнала для питания двигателя переменного тока с регулировкой частоты". Первую я доделал и изготовил в железе. Прекрасно работает, не выключаясь на протяжении нескольких лет. Теперь возникла необходимость в 3х фазах. Адрес исходной программы - http://www.yysup.narod.ru/schem/3fase.html Прикрепленный архив скопирован с "народа".
Помогите, программа не подает признаков жизни. Возможно напутано что то с инициализацией. Как и в первой его программе.
Вложения
3fas_g.rar
(3.98 КиБ) Скачиваний: 0

Re: Помогите с программой "3х фазный ШИМ на ATmega48".

Radist » 02 янв 2021, 21:03

Ковыряться в чужой программе - наверное это никто не любит, проще и быстрее самому написать, надо только суть уловить. Задача (насколько я после праздников понял) - иметь три синусоиды для трехфазного движка. Сдвиг фаз постоянен, 120 градусов, а вот частоту желательно менять, так скорость можно регулировать. Так вот, к идее. Простой способ DDS, прямой цифровой синтез, в интернете есть статья Ридико Лелнида Ивановича, там все разжевано. Сделать из одного генератора три - элементарно.

Re: Помогите с программой "3х фазный ШИМ на ATmega48".

Foton-4n » 23 янв 2021, 00:31

Да мне надо собирать драйвер асинхронника так что это про меня. Но надо МК с 2-мя 16 бит таймерами желательно там и напряжение еще надо менять в зависимости от частоты.

Так что ты не можешь уже в отлаженную программу добавить 3 фазы со сдвигом? В чём проблема?

Re: Помогите с программой "3х фазный ШИМ на ATmega48".

Seggio » 31 июл 2021, 07:04

PIC24.ru автору осрв напиши

Re: Помогите с программой "3х фазный ШИМ на ATmega48".

Seggio » 01 авг 2021, 08:41

Код: Выделить всёРазвернуть
void TASK_ADC(void)
{for(;;);
{aden=1;
ADSC=1;
OS_COND_WAIT(!ADSC);
m_cSpeed=ADCH;
OS_Delay(100mS);}}

Re: Помогите с программой "3х фазный ШИМ на ATmega48".

Seggio » 03 авг 2021, 08:31

void Task_F(void){
for(;;){ const char A[15]={125,200,255,200,125,55,0,55,125,200,255,200,125,55};
int i;
for(i;i<9;i++){k=0;
while(k<3){
if(k=0) portd=A[i];
if(k=1) portd=A[i+4];
if(k=2) A[i+6];
portb=pow(2,k);
OS_Delay(m_cSpeed);
k++;}}}

Re: Помогите с программой "3х фазный ШИМ на ATmega48".

Seggio » 05 авг 2021, 14:28

Ошибка.Надо PORTD=A[I+6];,а на выход три ЦАП

Добавлено спустя 3 часа 48 минут 8 секунд:
Код: Выделить всёРазвернуть
void Init(void){
TOIEO=1;
CS00=1;
CS02=1;
DDRB=0X07;
DDRD=0XFF;
DDRC=0X00;
ADMUX=0;
}
void interrupt isr(void){
if(TOV0) {
OS_Timer();
TOV0=0;
}//1ms-Fosc=10mhz


Добавлено спустя 1 час 25 минут 23 секунды:
Код: Выделить всёРазвернуть
#include<osa.h>
#include<math.h>
#define ms 1
char m_cSpeed=2;
//здесь 4 подпрограммы;
void main(void){
Init();
OS_Init();
OS_Task_Create(0,Task_ADC);
OS_Task_Create(0,Task_F);
OS_EI();
OS_RUN();
} END

ЦАП на 555ир23, B0-C1,B1-C2

Добавлено спустя 8 минут 41 секунду:
Загрузи с pic24.ru ОСРВ для avr. Установи AVRStudio, winavr. Исправив ошибки откомпилируй, шим немного сложнее, а тут получилось всё на скорую руку


cron
Rambler\'s Top100 Mail.ru counter