CCS C for döngüsü ile ilgili bir soru

sasen1

Üye
Katılım
19 Haz 2008
Mesajlar
162
Puanları
3
Merhaba arkadaşlar ccs c de LCD ye for döngüsü ile 200 e kadar sayıları saydırmak istedim.Ancak 128 den sonra eksi değerde 128 den geriye doğru saymaya başlıyor.Bunun nedeni nedir?Teşekkürler
C:
#include <16F877.h>

#fuses XT,NOWDT,NOPUT,NOLVP,NOCPD,NOPROTECT,NODEBUG,NOBROWNOUT,NOWRT
#use delay(CLOCK=4000000)
#define use_portb_lcd TRUE
#include <lcd.c>

int i=0;

void main()
{
   setup_psp(PSP_DISABLED);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_CCP1(CCP_OFF);
   setup_CCP2(CCP_OFF);
  

  
   lcd_init();
  

   for(i=0;i<200;i++)
   {
     printf(lcd_putc,"\f Sayi= %d",i);
     delay_ms(50);
     }
  
   }
 

ISMAILY

Üye
Katılım
9 Nis 2010
Mesajlar
421
Puanları
33
i değişkenini unsigned int veya int16 tanımlayın.
 
Konu Sah

sasen1

Üye
Katılım
19 Haz 2008
Mesajlar
162
Puanları
3
.Maalesef olmadı.i değişkenini unsigned int olarak tanımladığımda da 128 den sonra eksiye geçip 128 den geriye doğru saymaya başlıyor.-57 de duruyor. Yani 200 sayısını bu şekilde tamamlıyor.LCD ekranda 200 sayısı görünmüyor.i değişkenini int16 ya tanımladığımda ise printf(lcd_putc,"\f Sayi= %d",i); satırında i için c compiler derleyicisinde printf format type is invalid hatasını veriyor.
sayı negatif.jpg sayı pozitif.jpg
Sorunu çözdüm printf(lcd_putc,"\f Sayi= %d",i) komutunda %sabiti %d yerine %u olması gerekiyor. unsigned int sayılarıda kullanılması gereken %sabiti %u böylece pozitif tamsayıları lcd ekranda saydırabiliyoruz.
lcd %u sabiti.jpg
 
Moderatör tarafında düzenlendi:

Benzer Konular

Forum istatistikleri

Konular
114,839
Mesajlar
808,396
Kullanıcılar
420,190
Son üye
muco4141

Yeni konular

Üst