Propeller GCC es el proyecto que está haciendo posible programar el microcontrolador Propeller en C/C++, y aunque todavía está en versión alfa, podemos realizar ya casi cualquier programa.
A continuación mostramos un programa en SPIN, y la versión en lenguaje C:
Código SPIN:
CON
_clkmode = xtal1 + pll16x
_xinfreq = 5_000_000
PUB Main | i
i := 0
Start_PWM(16)
repeat
Duty_PWM(i)
waitcnt(clkfreq / 100 + cnt)
i++
if i > 99
i := 0
PUB Start_PWM(Pin)
DIRA[Pin] := 1
CTRA := %0_0110<<26 + Pin
PUB Duty_PWM(dutyCycle)
FRQA := $7FFF_FFFF/50 * dutyCycle
Código C:
#include "propeller.h"
void Start_PWM(int Pin)
{
DIRA = 1 << Pin;
CTRA = (0b00110<<26) + Pin;
}
void Duty_PWM(int dutyCycle)
{
FRQA = 0x7FFFFFFF/50 * dutyCycle;
}
int main()
{
int i = 0;
Start_PWM(19);
for(;;) {
Duty_PWM(i);
waitcnt(CLKFREQ / 100 + CNT);
i++;
if (i > 99)
i = 0;
}
}
Los dos programas, línea por línea son muy parecidos, en algunos casos no fue necesario cambiar nada.
Un cambio muy importante fue poner entre paréntesis la expresión: "0b00110<<26", de otro modo el compilador suma "26" y el valor de "Pin", siendo esto un error, y su programa no funcionará.
No hay comentarios:
Publicar un comentario