Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

sprintf sorunu

Başlatan 3ddark, 07 Ekim 2008, 14:21:46

3ddark

Kolay gelsin arkadaşlar
Ben LCD ile saat yapmak istiyorum ama veriler LCD de istediğim gibi çıkmıyor sayılar tek haneli görünüyor 2 haneli olunca düzgün ama başta "0" rakamı yazınca ekranda yazmıyor "00" yazdırınca sadece "0" görünüyor.           Yardımcı olursanız teşekkür ederim.

Bu arada bir tane forumda buna benzer kod gördüm ama ben MPLAB 8,01 ve HI-TECH PICC 9,50 kullanıyorum.
#include <htc.h>
#include <delay.h>
#include <lcd.h>
#include <init.h>
#include <stdio.h>

char port,saat,dk,sn;
unsigned char sayac;
unsigned char data[2];

void main(void)
{
	saat=00;
	dk=00;
	sn=55;
	init();
	LCD_INIT();
	while(1)
	{
		LCD_GOTO(0,0);
	sprintf (data,"%2d:", saat );
		LCD_PUTS(data);
	LCD_GOTO(3,0);
	sprintf (data,"%2d:", dk );
		LCD_PUTS(data);
	LCD_GOTO(6,0);
	sprintf (data,"%2d", sn );
		LCD_PUTS(data);
	}
}

void interrupt my_isr(void){
	/***** PortB Code *****/
	if((RBIE)&&(RBIF)){
		// TODO - add code to handle this event...
		RBIF=0;	// clear event flag
	}

	/***** Timer 0 Code *****/
	if(/*(T0IE)&&(*/T0IF/*)*/){
		T0IF=0;	// clear event flag
		TMR0=0x80;
	sn++;
	if (sn==60)
		{		
			sn=0;
			dk++;
		}
 }
}
Yapılacak çok şey var

arslan74

Merhaba,

Birde böyle deneyin.

%2d yerine sadece %d yazarak deneyin. Sonrada her bir bilgiyi ekrana yazmada  LCD_GOTO(x,y); ile konumlandırın.

Selamlar

3ddark

Malesef %d ilede olmadı ama bende şöyle yaptım şimdi çok güzel sorunsuz çalışıyor bir yerde daha okumuştum arslan74  bir kişi daha böyle sorun yaşamış sen cevap yazmışsın ama şu anlık çok pratik olarak işimi çözdü bu kod. İlgin için teşekkürler bu arada hi-tech C ye başlamamın sebebi sen oldun kaynak arıyordum senin ufak tefek bayağı işe yarayan kodlardan 10 derste epey yol aldım zaten C ye geçmek istiyordum sebep oldu.

Son olarak arslan74 hocam elinde gönderebilecegin kütüphane varmı glcd veya rtc ısı sensörü i2c 24cxx eprom haberleşme protokolleri bir daha epey uğratıracak yada hazır nereden bulabilirim üzerinde oynama yaparak daha az zaman kaybederim
while(1)
	{
		LCD_GOTO(0,0);
			if (saat<10)
				LCD_PUTCH('0');
	
			sprintf (data,"%d:", saat );
			LCD_PUTS(data);

		LCD_GOTO(3,0);
			if (dk<10)
				LCD_PUTCH('0');
			sprintf (data,"%d:", dk );
			LCD_PUTS(data);
	
		LCD_GOTO(6,0);
			if (sn<10)
				LCD_PUTCH('0');			
			sprintf (data,"%d", sn );
			LCD_PUTS(data);
	}
Yapılacak çok şey var

Gurkan-Demirbas

Alıntı yapılan: "3ddark"Son olarak arslan74 hocam elinde gönderebilecegin kütüphane varmı glcd veya rtc ısı sensörü i2c 24cxx eprom haberleşme protokolleri bir daha epey uğratıracak yada hazır nereden bulabilirim üzerinde oynama yaparak daha az zaman kaybederim.
Bu link belki biraz merhem olur
http://www.eagleairaust.com.au/sampcode.htm
Bu linki de forumdan almıştım zaten

==> Eğer Hi-Tech ile yazılmış örnekleri içeren başka linkleri paylaşabilirseniz, ben de çok mutlu olurum.

GürkaN

3ddark

Buradakiler sana bayağı yardımcı olur sağolsun arkadaş üşenmemiş uğraşmış ders hazırlamış.
http://www.4shared.com/dir/5510250/5d7b9d0c/Hi-Tech.html
Yapılacak çok şey var