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

//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; }
}
}