You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
957 B
40 lines
957 B
6 years ago
|
//Pfm.h avec table vit
|
||
|
//#include "Pfm.h" SetupPfm(); dans le pp
|
||
|
volatile int8_t pfmL, pfmR; // -80 .. +80
|
||
|
#define MaxPfm 80
|
||
|
volatile byte pfmCntL;
|
||
|
volatile byte pfmCntR;
|
||
|
void DoPfm () {
|
||
|
char tempL,tempR;
|
||
|
if (pfmR > MaxPfm) pfmR=MaxPfm; // saturer
|
||
|
if (pfmR < -MaxPfm) pfmR= -MaxPfm;
|
||
|
|
||
|
if (pfmR >=0) {
|
||
|
if ((pfmCntR += pfmR) > MaxPfm) {
|
||
|
pfmCntR -= MaxPfm; AvD; }
|
||
|
else { FreeD; }
|
||
|
}
|
||
|
if (pfmR <0) {
|
||
|
tempR= -pfmR; // ou pfR= ABS(pfR)
|
||
|
if ((pfmCntR += tempR) > MaxPfm) {
|
||
|
pfmCntR -= MaxPfm; RecD; }
|
||
|
else { FreeD; }
|
||
|
}
|
||
|
if (pfmL > MaxPfm) pfmL=MaxPfm; // saturer
|
||
|
if (pfmL < -MaxPfm) pfmL= -MaxPfm;
|
||
|
|
||
|
if (pfmL >=0) {
|
||
|
if ((pfmCntL += pfmL) > MaxPfm) {
|
||
|
pfmCntL -= MaxPfm; AvG; }
|
||
|
else { FreeG; }
|
||
|
}
|
||
|
if (pfmL <0) {
|
||
|
tempL= -pfmL; // ou pfL= ABS(pfL)
|
||
|
if ((pfmCntL += tempL) > MaxPfm) {
|
||
|
pfmCntL -= MaxPfm; RecG; }
|
||
|
else { FreeG; }
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|