Здравствуйте. Проектирую трехфазный инвертор , но никак не могу доделать программу для МК, который должен фомировать многоимпульсное напряжение.
char ii;
unsigned int duty, period, pause, res;
void main(){
ANSEL = 0x04; // Configure AN2 pin as analog
ANSELH = 0;
C1ON_bit = 0; // Disable comparators
C2ON_bit = 0;
EEPROM_Write(0x02, 0b00000101);
EEPROM_Write(0x03, 0b00000100);
EEPROM_Write(0x04, 0b00000101);
EEPROM_Write(0x05, 0b00000101);
EEPROM_Write(0x06, 0b00000101);
EEPROM_Write(0x07, 0b00000001);
EEPROM_Write(0x08, 0b00000101);
EEPROM_Write(0x09, 0b00000001);
EEPROM_Write(0x0A, 0b00000001);
EEPROM_Write(0x0B, 0b00000001);
EEPROM_Write(0x0C, 0b00000011);
EEPROM_Write(0x0D, 0b00000001);
EEPROM_Write(0x0E, 0b00000011);
EEPROM_Write(0x0F, 0b00000011);
EEPROM_Write(0x10, 0b00000011);
EEPROM_Write(0x11, 0b00000010);
EEPROM_Write(0x12, 0b00000011);
EEPROM_Write(0x13, 0b00000010);
EEPROM_Write(0x14, 0b00000010);
EEPROM_Write(0x15, 0b00000010);
EEPROM_Write(0x16, 0b00000010);
EEPROM_Write(0x17, 0b00000110);
EEPROM_Write(0x18, 0b00000010);
EEPROM_Write(0x19, 0b00000110);
EEPROM_Write(0x1A, 0b00000100);
EEPROM_Write(0x1B, 0b00000110);
EEPROM_Write(0x1C, 0b00000100);
EEPROM_Write(0x1D, 0b00000100);
EEPROM_Write(0x1E, 0b00000100);
EEPROM_Write(0x1F, 0b00000100);
EEPROM_Write(0x20, 0b00000100);
PORTD = 0;
TRISD = 0;
period=204;
while (1)
{
for(ii = 0; ii < 30; ii++)
{
res=ADC_Read(2);
Duty=res;
PORTD = EEPROM_Read(0x02+ii);
Delay_cyc(duty);
PORTD = 0;
pause=period-duty;
delay_cyc(pause);
}
}
ii = 0;
}
написал вот такую вот маленькую программку, но операциями delay_cyc не получается изменять длительности импульсов.
в итоге мне нужно чтобы на вход АЦП подавалось напряжение равное длительности всех импульсов(Например если период одного импульса 83 Us то его DutyCycle = 50us, всего за период основной частоты = 400Гц должно быть 30 импульсов .
Микроконтроллеры я никогда не изучал, просто есть необходимость сделать это для диплома =[ если у вас есть возможность помогите правильно задать таймеры и рассчитать АЦП так, чтобы изменяя напряжение на ADC входе изменялись длительность всех импульсов, но основной период оставался константой.
Прилагаю форму напряжения
http://qclk.ru/k5/PS301