PIC14+sdcc sayı (integer) yazdırma


Bu aralar bir delilik edip, PIC16F887'yi sdcc (Small Device C Compiler) ile programlama işine bulaştım. sdcc güzel fena sayılmaz fakat PIC14 versiyonunun bazı ciddi eksikleri var. Bunlardan biri de "printf" fonksiyonu. Ben de oturup sayıları LCD ekranda gösterebileceğim bir fonksiyon yazdım. Budur:

#define INTBUFSIZE 6 //Bunu integer'in kaç basamak olacağına göre ayarlamalı

void printi(int num) {

char c[INTBUFSIZE+1];

int i=0;

while (num>9&&i<INTBUFSIZE-1){

c[i] = (num%10)+'0';

num /= 10;

i++;

}

c[i] = num+'0';

while(i>-1) {

putchar(c[i]);

i–;

}

}

Bu fonksiyon karakteri LCD'ye göndermek için putchar fonksiyonunu kullanıyor. Bu da uygulamaya göre tanımlanabilir. Pekala sayıları karakter olarak seri porttan da gönderebilirsiniz. Ben putchar fonksiyonunu aynen LCD'ye yazma fonksiyonuna yönlendirdim. Şöyle:

void putchar(char c) {

lcd_write_data(c);

}


Bir cevap yazın

E-posta hesabınız yayımlanmayacak.