Hola quería pedir por favor si pudieran ayudarme a usar esta forma de código del arduino para PIC, y así poder usar mi código " ansi c " que genera un software libre llamado LDMICRO, a decir verdad este código que quiero que me " traduzcan " ; lo uso para el código ansi c de ldmicro para arduino y funciona de maravilla pero en PIC me falta este código que no consigo como quien dice traducir, ya he usado timer1, 0, la librería #USE TIMER, pero necesito este código:
#include " ladder.h "
#define interval 10
unsigned long waitUntil=0;
void setup() {
PlcSetup();
}
void loop() {
if ((unsigned long)(millis() - waitUntil) >= interval)
{
PlcCycle();
waitUntil = waitUntil + interval; // wait another interval cycle
return true;
}
return false;
}
*P.D.: UN COMPAÑERO DE OTRO PAÍS ME DIO ESTE CÓDIGO PARA PIC PERO NO CONSIGO ENTENDERLO, POR ESO ACUDO A SU AYUDA :
static unsigned long timer1_raw_tics_80_49 = 0; // MSB 32 bits size
static unsigned long timer1_raw_tics_48_17 = 0; // Midle 32 bits size
// LSB is Timer1 value. // LSB 16 bits size
/* service routine for timer 1 interrupt */
void interrupt timer1_isr(void)
{
timer1_raw_tics_48_17++;
if(timer1_raw_tics48_17 == 0) timer1_raw_tics_80_49++;
TMR1IF = 0;
}
Like in Aruino
unsigned long millis()
{
//covert timer1_raw_tics_80_49,timer1_raw_tics_48_17,Timer1 value to milliseconds
}
unsigned long micros()
{
//covert timer1_raw_tics_80_49,timer1_raw_tics_48_17,Timer1 value to microseconds
} ...
#include " ladder.h "
#define interval 10
unsigned long waitUntil=0;
void setup() {
PlcSetup();
}
void loop() {
if ((unsigned long)(millis() - waitUntil) >= interval)
{
PlcCycle();
waitUntil = waitUntil + interval; // wait another interval cycle
return true;
}
return false;
}
*P.D.: UN COMPAÑERO DE OTRO PAÍS ME DIO ESTE CÓDIGO PARA PIC PERO NO CONSIGO ENTENDERLO, POR ESO ACUDO A SU AYUDA :
static unsigned long timer1_raw_tics_80_49 = 0; // MSB 32 bits size
static unsigned long timer1_raw_tics_48_17 = 0; // Midle 32 bits size
// LSB is Timer1 value. // LSB 16 bits size
/* service routine for timer 1 interrupt */
void interrupt timer1_isr(void)
{
timer1_raw_tics_48_17++;
if(timer1_raw_tics48_17 == 0) timer1_raw_tics_80_49++;
TMR1IF = 0;
}
Like in Aruino
unsigned long millis()
{
//covert timer1_raw_tics_80_49,timer1_raw_tics_48_17,Timer1 value to milliseconds
}
unsigned long micros()
{
//covert timer1_raw_tics_80_49,timer1_raw_tics_48_17,Timer1 value to microseconds
} ...
Última edición: