GoGo Real: Firmware SDCC

Para gerarmos um firmware compatível com a GoGo Real, utilizando a última versão do compilador SDCC e bibliotecas Gputils, além de instala-los, deveremos utilizar a programação abaixo.

Para a compilação no Windows, poderemos criar um arquivo bat com este conteúdo:

@echo off
sdcc --ivt-loc=0x1840 --use-non-free -mpic16 -p18f4550 -c main.c
pause
sdcc -mpic16 -p18f4550 --ivt-loc=0x1840 --use-non-free --no-crt main.o libc18f.lib libm18f.lib libio18f4550.lib -m -o main.hex
pause

O código em C poderá ser:

#define NO_BIT_DEFINES 1
#include "pic18f4550.h"
#include "pic18fregs.h"
#include

#pragma config XINST=OFF
#define CLOCK_SPEED 48000000

int i = 0;

void main(void) {
TRISA = 0x2F; // 0b00101111
TRISB = 0x03; // 0b00000011
TRISC = 0x00; // 0b00000000
TRISD = 0x02; // 0b00000010
TRISE = 0x07; // 0b00000111
while(1) {
PORTAbits.RA4 = 0; //run
PORTDbits.RD0 = 0; //user
PORTCbits.RC0 = 0; //u2
PORTCbits.RC1 = 0; //u3
for(i=0; i<=32000; ++i);
for(i=0; i<=32000; ++i);
PORTAbits.RA4 = 1; //run
PORTDbits.RD0 = 1; //user
PORTCbits.RC0 = 1; //u2
PORTCbits.RC1 = 1; //u3
for(i=0; i<=32000; ++i);
for(i=0; i<=32000; ++i);
}
}

Este programa fará com que todos os leds da placa alterem seu estado entre acesso e apagado, utilizando ao invés de um delay um contador for com o mesmo princípio.

Anúncios