Vattna blommorna – Del 5

Det blev inte så mycket programmerat igår, men lite grann fick jag till iaf.

Konsten att förstå sig på en PIC-processor kräver att man läser en massa dokument. Och Microtec har dokument för sina Pic:ar, men de vill givetvis inte skriva något annat än assembler.

Men SDCC verkar inte ha några exempel, än de man surfar efter. Mina skills är helt enkelt inte de bästa när det gäller PIC-programmering generellt. Har jag tagit mig vatten över huvudet, eller komme jag klara det efter lite tid? Vi får se, men jag ger mig inte så fort =).

Jag hittade ett projekt som hette i4uC, som är ett öppen källkodsbaserat IDE för Mikroprocessor som använder SDCC och där PIC16F690 stöds. Det gick inte så bra att installera i ubuntu, så jag får göra det i Arch lite senare, som ivf är en miljö med många nya paket och inte 3 år gamla. Det får bli en senare utmaning.

Det var ett litet sidorpår. Jag gjorde en del programmering igår, bland annat testade jag RC-utgångarna för att få leddarna att lysa. Man använder egentligen bara en variabel för att sätta igång de olika, där 0x00 är alla avstända och 0x0F är alla 4 tända. Kombinationerna ser ut såhär:

Hex	Led1	Led2	Led3	Led4
0x00
0x01	x
0x02		x
0x03	x	x
0x04			x
0x05	x		x
0x06		x	x
0x07	x	x	x
0x08				x
0x09	x			x
0x0a		x		x
0x0b	x	x		x
0x0c			x	x
0x0d	x		x	x
0x0e		x	x	x
0x0f	x	x	x	x

Jag gjorde tested enkelt genom att bara skriva lite kod som ändrar hexkoden och väntar 100ms:

#include 

typedef unsigned int word;

word at 0x2007 __CONFIG = (_INTRC_OSC_NOCLKOUT & _CP_OFF & _WDT_OFF & _BOR_OFF & _PWRTE_ON & _MCLRE_OFF & _IESO_OFF & _FCMEN_OFF);
void delay_ms(long ms)
{
    long i;

    while (ms--)
        for (i=0; i < 100; i++)
            ;
}

void main () {
	TRISC = 0x00;	/* PORTC, All outputs */
	PORTC = 0x00;
	while (1)
	{
	 PORTC = 0x00;
	 delay_ms(100);
	 PORTC = 0x01;
	 delay_ms(100);
	 PORTC = 0x02;
	 delay_ms(100);
	 PORTC = 0x03;
	 delay_ms(100);
	 PORTC = 0x04;
	 delay_ms(100);
	 PORTC = 0x05;
	 delay_ms(100);
	 PORTC = 0x06;
	 delay_ms(100);
	 PORTC = 0x07;
	 delay_ms(100);
	 PORTC = 0x08;
	 delay_ms(100);
	 PORTC = 0x09;
	 delay_ms(100);
	 PORTC = 0x0a;
	 delay_ms(100);
	 PORTC = 0x0b;
	 delay_ms(100);
	 PORTC = 0x0c;
	 delay_ms(100);
	 PORTC = 0x0d;
	 delay_ms(100);
	 PORTC = 0x0e;
	 delay_ms(100);
	 PORTC = 0x0f;
	 delay_ms(100);
	}
}

Efter det är det bara att kompilera med SDCC och skicka ut genom PicKit2:

$ sdcc -mpic14 -p16f690 -V main.c && pk2cmd -B/usr/share/pk2/  /PPIC16F690 -Fmain.hex -M -T

Nu ska jag iväg till mina föräldrar. so long.

One thought on “Vattna blommorna – Del 5”

  1. Pingback: En lugn söndag

Leave a Reply

Your email address will not be published. Required fields are marked *