Bonjour à tous,
J’essaye de réaliser un variateur pour brushless avec un PIC 18F4620 et un codeur incrémental (pour connaître la position du rotor). Jusqu'à maintenant tout allait bien mais à partir de mes 512 positions de codeur, je voulais avoir les 84 commutations de mon moteur… une bete division… et la je me rend compte que les divisions/ multiplications ne fonctionnent pas sur mon pic . Elles fonctionnent en simulation sous MPLAB mais dès que je transfère sur le pic ça fonctionne plus. Je précise que la plaque que j’utilise fonctionne normalement avec d’autres programmes.
Un exemple :
#include <p18f4620.h>
#pragma config OSC = HSPLL
#pragma config WDT = OFF
#define led_verte LATAbits.LATA4
int i,j;
double hh,gg;
void InitialisationPorts(void)
{
//leds :
TRISAbits.TRISA4 = 0; //verte
}
void main (void)
{
OSCCON |= 0b01100000;
InitialisationPorts();
i=1;
i=i*2;
if(i==2)
led_verte = 1;
while(1);
}
Et bin la led verte ne s’allume pas ! (si je remplace la ligne i=i*2 par i=i+1 elle s’allume, j’en déduit que le problème vient de la multiplication).
Quelqu’un à t-il déjà eu le pb ? ou une idée ?
Merci d’avance.
-----