roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 03:22

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Помогите с программой "3х фазный ШИМ на ATmega48".
СообщениеДобавлено: 17 дек 2020, 14:18 
Не в сети

Зарегистрирован: 17 дек 2020, 13:39
Сообщения: 1
Откуда: Харьков
Всем добра! На "народе" есть статья, "Трехфазный генератор регулируемой частоты" Автор приводит схему, исходник на ассемблере и скомпилированную программу. Но... в исходнике где то ошибка, как и в первой статье автора "Формирователь синусоидального сигнала для питания двигателя переменного тока с регулировкой частоты". Первую я доделал и изготовил в железе. Прекрасно работает, не выключаясь на протяжении нескольких лет. Теперь возникла необходимость в 3х фазах. Адрес исходной программы - http://www.yysup.narod.ru/schem/3fase.html Прикрепленный архив скопирован с "народа".
Помогите, программа не подает признаков жизни. Возможно напутано что то с инициализацией. Как и в первой его программе.


Вложения:
3fas_g.rar [3.98 КиБ]
Скачиваний: 0
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с программой "3х фазный ШИМ на ATmega48".
СообщениеДобавлено: 02 янв 2021, 21:03 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с программой "3х фазный ШИМ на ATmega48".
СообщениеДобавлено: 23 янв 2021, 00:31 
Не в сети
Аватара пользователя

Зарегистрирован: 17 апр 2019, 13:02
Сообщения: 254
Откуда: Мухосранск
прог. языки: Basic, C#
Да мне надо собирать драйвер асинхронника так что это про меня. Но надо МК с 2-мя 16 бит таймерами желательно там и напряжение еще надо менять в зависимости от частоты.

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

_________________
Если наука бессильна значит работает магия!
Поиски лёгкого пути это самый трудный путь!
Ничего не может быть придумано до нас! Никто не даст тебе того что ты хочешь пока сам не сделаешь!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с программой "3х фазный ШИМ на ATmega48".
СообщениеДобавлено: 31 июл 2021, 07:04 
Не в сети
Аватара пользователя

Зарегистрирован: 30 июл 2021, 08:58
Сообщения: 20
PIC24.ru автору осрв напиши


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с программой "3х фазный ШИМ на ATmega48".
СообщениеДобавлено: 01 авг 2021, 08:41 
Не в сети
Аватара пользователя

Зарегистрирован: 30 июл 2021, 08:58
Сообщения: 20
Код:
void TASK_ADC(void)
{for(;;);
{aden=1;
ADSC=1;
OS_COND_WAIT(!ADSC);
m_cSpeed=ADCH;
OS_Delay(100mS);}}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с программой "3х фазный ШИМ на ATmega48".
СообщениеДобавлено: 03 авг 2021, 08:31 
Не в сети
Аватара пользователя

Зарегистрирован: 30 июл 2021, 08:58
Сообщения: 20
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".
СообщениеДобавлено: 05 авг 2021, 14:28 
Не в сети
Аватара пользователя

Зарегистрирован: 30 июл 2021, 08:58
Сообщения: 20
Ошибка.Надо 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. Исправив ошибки откомпилируй, шим немного сложнее, а тут получилось всё на скорую руку


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO