Возможно ли переписать PWM ?

Возможно ли переписать PWM ?

Postby Sergey Ivanov on 25 Oct 2010, 21:32

нашёл я тут библиотеку на камень (для ШИМв приложении)

возможно ли его переписать , чтобы получить нужный ШИМ с периодом 20 мс и длительностью импульса 0,8-2,2 с шагом 0,01 мс ?

MCB2300_PWM.c
(5.4 KiB) Downloaded 120 times



пока не понял что тут имеют в виду: (предполагаю, что описывают часы :dntknw: )

void MCB2300_PWMInit(int32 nCycleTime, int32 nErrIn, int32* pnErrOut) {
int32 m=0, n=0, pll=0, cclksel=0, cclk=0, pclk=0;

if (nErrIn) {
if (pnErrOut) {
*pnErrOut = nErrIn;
}
return;
}

PINSEL10 = 0;

m = PLLSTAT & 0x7FFF; // PLL multiplier (bits 14:0)
n = (PLLSTAT & 0xFF0000) >> 16; // PLL divider (bits 23:16)
pll = 2 * (m+1) * MainClock / (n+1); // MHz
cclksel = CCLKCFG & 0xFF; // pll divider to get clock
cclk = pll / (cclksel + 1); // clck in MHz
pclk = cclk/4;
PWM1PR = pclk; // pre scale register to get 1ms
PWM1MR0 = nCycleTime; // match register 0 gives cycle time

PWM1MCR = 2;

PWM1CTCR = 0; // PWM count control register - timer mode
PWM1TCR |= 0x9; // PWM timer control register - enable timer counter and prescale counter
PWM1LER |= 1;
gnCycleTime = nCycleTime;
if (pnErrOut) {
*pnErrOut = 0;
}
}





стал разбираться дальше:
nCycleTime - время цикла - период, скорее всего, пока не понял, в мс или Гц. в установка в :labview: для ШИМ задаём в частоте
nOffset -смещение
Boolean bDoubleEdge двойной край (фронт)
Boolean bPolarity переключение на отрицательные импульсы
nDuration - длительность импульса
nErrIn - я так думаю ошибка (входящая?)
pnErrOut -тоже ошибка (исходящая?)

сейчас основная идея понять в каких единицах задаётся период, думаю, что в мс. судя по коду смещение и длительность импульса задаётся в процентах.
потом соответственно поменять нужные циферки и дело в шляпе ( это я так надеюсь на простое решение проблемы :D )


даже ограничения какие-то есть, что больше 100% быть не може, аналогично канал ШИМ от 1 до 6,

if (nErrIn) {
if (pnErrOut) {
*pnErrOut = nErrIn;
}
return;
}

if (pnErrOut) {
*pnErrOut = 0;
}

if (nChan < 1 || nChan > 6) {
if (pnErrOut) {
*pnErrOut = 1;
}
return;
}

if (bDoubleEdge && ((nOffset + nDuration) > 100)) {
if (pnErrOut) {
*pnErrOut = 1;
}
return;
}
else if (!bDoubleEdge && nOffset > 100) {
if (pnErrOut) {
*pnErrOut = 1;
}
return;
}




пока такие мысли в голову влезли )
Добро пожаловать на http://rk-stud.ru/
User avatar
Sergey Ivanov
expert
expert
 
Posts: 1193
Joined: 01 Mar 2009, 20:54
Location: Санкт-Петербург, Кронштадт
Medals: 5
Activity (1) Professionalism (1) Gold (2) Автор (1)
LabVIEW Version: 2013
Karma: 117
hardware VIP

Re: Возможно ли переписать PWM ?

Postby Konstantin Sumenko on 25 Oct 2010, 23:05

По памяти: скважность- в процентах; период, длительность импульса- в количестве тактов опоры PWM. Начни с изучения прескейлеров тактовой периферии- поймешь можно ли период в 20 мс получить. В LM3Sxxxx максимально возможный период 91мс при частоте ядра в 50 МГц.
User avatar
Konstantin Sumenko
expert
expert
 
Posts: 1439
Joined: 17 Jul 2008, 12:20
Location: Moscow
Medals: 2
Activity (1) Bronze (1)
LabVIEW Version: 2010
Karma: 122
VIP bloggers students

Re: Возможно ли переписать PWM ?

Postby Sergey Ivanov on 26 Oct 2010, 11:25

о, спасибо.

В LM3Sxxxx максимально возможный период 91мс при частоте ядра в 50 МГц

максимально возможный или минимально ?
Добро пожаловать на http://rk-stud.ru/
User avatar
Sergey Ivanov
expert
expert
 
Posts: 1193
Joined: 01 Mar 2009, 20:54
Location: Санкт-Петербург, Кронштадт
Medals: 5
Activity (1) Professionalism (1) Gold (2) Автор (1)
LabVIEW Version: 2013
Karma: 117
hardware VIP

Re: Возможно ли переписать PWM ?

Postby Sergey Ivanov on 26 Oct 2010, 11:34

так скважность и длительность импульсов это же одно и тоже
Добро пожаловать на http://rk-stud.ru/
User avatar
Sergey Ivanov
expert
expert
 
Posts: 1193
Joined: 01 Mar 2009, 20:54
Location: Санкт-Петербург, Кронштадт
Medals: 5
Activity (1) Professionalism (1) Gold (2) Автор (1)
LabVIEW Version: 2013
Karma: 117
hardware VIP

Re: Возможно ли переписать PWM ?

Postby Konstantin Sumenko on 26 Oct 2010, 12:19

От 11 Гц и выше. Скважность и длительность не одно и тоже- первое безразмерное, второе- нет. Завязаны друг на друга через период.
User avatar
Konstantin Sumenko
expert
expert
 
Posts: 1439
Joined: 17 Jul 2008, 12:20
Location: Moscow
Medals: 2
Activity (1) Bronze (1)
LabVIEW Version: 2010
Karma: 122
VIP bloggers students

Re: Возможно ли переписать PWM ?

Postby Sergey Ivanov on 26 Oct 2010, 14:32

Crowbar wrote:По памяти: скважность- в процентах; период, длительность импульса- в количестве тактов опоры PWM. Начни с изучения прескейлеров тактовой периферии- поймешь можно ли период в 20 мс получить. В LM3Sxxxx максимально возможный период 91мс при частоте ядра в 50 МГц.




прескейлер - это что такое и где можно найти ?

период в 20 мс получить можно. (если в настройках PWM задать частоту 50 Гц, если я ничего не путаю опять )
Добро пожаловать на http://rk-stud.ru/
User avatar
Sergey Ivanov
expert
expert
 
Posts: 1193
Joined: 01 Mar 2009, 20:54
Location: Санкт-Петербург, Кронштадт
Medals: 5
Activity (1) Professionalism (1) Gold (2) Автор (1)
LabVIEW Version: 2013
Karma: 117
hardware VIP

Re: Возможно ли переписать PWM ?

Postby Sergey Ivanov on 26 Oct 2010, 20:11

этот файл, по ходу, и на что не влияет. я его удалил , но всё равно можно задвать длительность PWM
Добро пожаловать на http://rk-stud.ru/
User avatar
Sergey Ivanov
expert
expert
 
Posts: 1193
Joined: 01 Mar 2009, 20:54
Location: Санкт-Петербург, Кронштадт
Medals: 5
Activity (1) Professionalism (1) Gold (2) Автор (1)
LabVIEW Version: 2013
Karma: 117
hardware VIP

Re: Возможно ли переписать PWM ?

Postby Konstantin Sumenko on 27 Oct 2010, 08:20

Прескейлер это набор регистров, ответственный за опору (частоту) ШИМ- обычно состоит из делителя частоты ядра плюс счетчик (второй делитель, отвечающий за результирующий период ШИМ).
User avatar
Konstantin Sumenko
expert
expert
 
Posts: 1439
Joined: 17 Jul 2008, 12:20
Location: Moscow
Medals: 2
Activity (1) Bronze (1)
LabVIEW Version: 2010
Karma: 122
VIP bloggers students

Re: Возможно ли переписать PWM ?

Postby Sergey Ivanov on 27 Oct 2010, 14:40

почему удаление этога файла ( в приложении) на работоспособность ШИМ не повлияло?
Добро пожаловать на http://rk-stud.ru/
User avatar
Sergey Ivanov
expert
expert
 
Posts: 1193
Joined: 01 Mar 2009, 20:54
Location: Санкт-Петербург, Кронштадт
Medals: 5
Activity (1) Professionalism (1) Gold (2) Автор (1)
LabVIEW Version: 2013
Karma: 117
hardware VIP

Re: Возможно ли переписать PWM ?

Postby Konstantin Sumenko on 27 Oct 2010, 14:55

Приведи полный путь файла а также название выбранного таргета при создании проекта.
User avatar
Konstantin Sumenko
expert
expert
 
Posts: 1439
Joined: 17 Jul 2008, 12:20
Location: Moscow
Medals: 2
Activity (1) Bronze (1)
LabVIEW Version: 2010
Karma: 122
VIP bloggers students

Re: Возможно ли переписать PWM ?

Postby Sergey Ivanov on 27 Oct 2010, 20:57

вот, даже переутановил :labview: (две версии стояло, думал, что как-то влияет)
Безымянный.jpg


название тагета - MCB2300
Добро пожаловать на http://rk-stud.ru/
User avatar
Sergey Ivanov
expert
expert
 
Posts: 1193
Joined: 01 Mar 2009, 20:54
Location: Санкт-Петербург, Кронштадт
Medals: 5
Activity (1) Professionalism (1) Gold (2) Автор (1)
LabVIEW Version: 2013
Karma: 117
hardware VIP

Re: Возможно ли переписать PWM ?

Postby Konstantin Sumenko on 28 Oct 2010, 08:13

А после удаления/переустановки ты тот же самый проект открываешь? Каждый проект содержит копию используемых драйверов и шаблонов- вноси изменения там, чтобы они отражались в текущем проекте или создай новый.
User avatar
Konstantin Sumenko
expert
expert
 
Posts: 1439
Joined: 17 Jul 2008, 12:20
Location: Moscow
Medals: 2
Activity (1) Bronze (1)
LabVIEW Version: 2010
Karma: 122
VIP bloggers students

Re: Возможно ли переписать PWM ?

Postby Sergey Ivanov on 28 Oct 2010, 09:53

переустановил :labview: , открыл новый проект, создал программу, записал её на МК, удалил MCB2300_PWM.c, всё равно можно было менять параметры ШИМ
Добро пожаловать на http://rk-stud.ru/
User avatar
Sergey Ivanov
expert
expert
 
Posts: 1193
Joined: 01 Mar 2009, 20:54
Location: Санкт-Петербург, Кронштадт
Medals: 5
Activity (1) Professionalism (1) Gold (2) Автор (1)
LabVIEW Version: 2013
Karma: 117
hardware VIP

Re: Возможно ли переписать PWM ?

Postby Konstantin Sumenko on 28 Oct 2010, 10:00

Ты сначала удали PWM.C, потом создай новый проект, скомпилируй программу, запиши в МК и проверь.
User avatar
Konstantin Sumenko
expert
expert
 
Posts: 1439
Joined: 17 Jul 2008, 12:20
Location: Moscow
Medals: 2
Activity (1) Bronze (1)
LabVIEW Version: 2010
Karma: 122
VIP bloggers students

Re: Возможно ли переписать PWM ?

Postby Sergey Ivanov on 28 Oct 2010, 10:18

ок, попробую. спасибо
Добро пожаловать на http://rk-stud.ru/
User avatar
Sergey Ivanov
expert
expert
 
Posts: 1193
Joined: 01 Mar 2009, 20:54
Location: Санкт-Петербург, Кронштадт
Medals: 5
Activity (1) Professionalism (1) Gold (2) Автор (1)
LabVIEW Version: 2013
Karma: 117
hardware VIP

Next

Return to Real Time / FPGA / Embedded

Who is online

Users browsing this forum: No registered users and 1 guest

cron