-CCS C de değişken problemi

burak6000

Üye
Katılım
17 Nis 2010
Mesajlar
195
Puanları
1
-Beyler bi yerden basit bir LCD proğramı bulup yazdım ama
sayi_degerini_bul() satırını tanıtmamış ben yeni öğrenmeye çalıştığımdan bilemedim yardımcı olabilirseniz minnettar kalırım....İşte yazılım
#include <16f877.h>
#fuses xt,nowdt
#use delay(clock=4000000)
const int digit[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7C,0x07,0x7F,0x6F};
unsigned int binler=0,yuzler=0,onlar=0,birler=0;
unsigned int16 sayi=0, say,kalan=0, bekle=1;
tarama()
{
output_high(pin_d4);
output_c(digit[birler]);
delay_ms(bekle);
output_low(pin_d4);

output_high(pin_d3);
output_c(digit[onlar]);
delay_ms(bekle);
output_low(pin_d3);

output_high(pin_d2);
output_c(digit[yuzler]);
delay_ms(bekle);
output_low(pin_d2);

output_high(pin_d1);
output_c(digit[birler]);
delay_ms(bekle);
output_low(pin_d1);

}
void main()
{
output_d(0x00);
while(1)
{
sayi_basamak_degerini_bul();
tarama();
if(input(pin_b0))
{
sayi=sayi+1;
if(sayi==10000)
sayi=0;
sayi_basamak_degerini_bul();
while(input(pin_b0))
{
tarama();
}
}
if(input(pin_b1))
{
sayi=sayi-1;
if(sayi==65535)
sayi=9999;
sayi_basamak_degerini_bul();
while(input(pin_b0))
{
tarama()
}
}
}

setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);



}
 
Arkadaşım burada fonksiyonlar eksik sadece main fonksiyonunu almışsın pic c nin example'ında lcd örneği var oradaki örneğe bak istersen.
 
-Yardımızı kesinlikle işe yaradı, ben o kısmını bilmiyordum bu gün birşeydaha öğrendim.
Ama Compile ettiğimde hata verdi kendi proğramına :///////// (bu CCS C yi öğrenmeye çalışmak karmaşık) hatalardan kendimi kurtaramıyorum...İşte kendi yazılımı yine hata...
>>>>>acaba void maine benim eklemem gereken yazılım mı var_? şimdiden teşekkürler..
#if defined(__PCM__)
#include <16C924.h>
#fuses HS,NOWDT,PUT
#use delay(clock=20000000)
#endif


/////////////////////////////////////////////////////////////////////////////////////////
// LCD Configuration //
/////////////////////////////////////////////////////////////////////////////////////////
// Digit segments A B C D E F G DP
// b7 b6 b5 b4 b3 b2 b1 b0
#define DIGIT4 COM1+26, COM1+17, COM2+17, COM3+26, COM2+25, COM1+25, COM2+26, COM3+17
#define DIGIT3 COM1+24, COM1+16, COM2+16, COM3+24, COM2+23, COM1+23, COM2+24, COM3+16
#define DIGIT2 COM1+22, COM1+19, COM2+19, COM3+22, COM2+21, COM1+21, COM2+22, COM3+19
#define DIGIT1 COM1+20, COM1+18, COM2+18, COM3+20, COM2+28, COM1+28, COM2+20, COM3+18
//
// character 0 1 2 3 4 5 6 7 8 9
byte const Digit_Map[10] = {0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0xE6};

#define BLANK 0
#define DASH 11
/////////////////////////////////////////////////////////////////////////////////////////


byte lcd_pos;

void lcd_putc(char c) {
byte segments;

if(c=='\f')
lcd_pos=0;
else {
if((c>='0')&&(c<='9'))
segments=Digit_Map[c-'0'];
else
segments=BLANK;
switch(lcd_pos) {
case 1 : lcd_symbol(segments,DIGIT4); break; // fill 1000s place
case 2 : lcd_symbol(segments,DIGIT3); break; // fill 100s place
case 3 : lcd_symbol(segments,DIGIT2); break; // fill 10s place
case 4 : lcd_symbol(segments,DIGIT1); break; // fill 1s place
}
}
lcd_pos++;
}


void main() {
long number = 0;

setup_lcd(LCD_MUX14|STOP_ON_SLEEP,2,ALL_LCD_PINS);

while(TRUE) {
printf(lcd_putc,"\f%4lu",number);
if(number++==10000)
number=0;
delay_ms(100);
}
}
 
Pic C de derleme yapmak için proje olarak açıp derlemen gerek yoksa sen hangi sayfayı açarsan aç derle dediğin zaman en son derlediğin projeyi derlemeye çalışır.
Bu nedenle önce wizard dan kendin bir proje başlat ve daha sonra örnekteki kodları uygun şekilde kopyala yapıştır yap sorun olmayacaktır.

Ayrıca 2x16 lcd için "pic c\driver" klasörünün içindeki lcd.c dosyasını incele kullanımı çok basit.

#include <lcd.c> // Burayı main den önce ekliyorsun.

void main()
{
lcd_init(); //
while(1)
{
lcd_gotoxy(1,1); // burası yazdıracağın satır ve sutun
printf(lcd_putc,"String Sabit ve %d",değişken); %d ifadesi int türünden değişken olduğunu ifade ediyor.
}
}

Bu kodlar umarım açıklayıcı olmuştur.
 
-Elimde 3 CCS kitabı + sizler yinede bu proğramın içinden çıkamıyorum=/
pes etmek yok... =) üstelik mesela kitapta ilk yazdığım yazılımıda kitaptan yazdım acaba o değişkeni nerede nasıl tanımlamam lazım?

teşekkürler....
 
Son düzenleme:
Tam olarak yapmak istediğin nedir ona göre yardımcı olmaya çalışayım...
 
-B0 bağlı butonuna basılıp bırakıldığında sayı1 artsın, B1 e basğlı butonda basılıp bırakıldığındada sayı 1 azalsın...
istenen yazılım bu...
teşekkürler...
 
peki sayıyı nerede göstericeksin lcd de mi yoksa led display demi ??
 

Forum istatistikleri

Konular
128,177
Mesajlar
915,643
Kullanıcılar
449,939
Son üye
sorunsuzşofben

Yeni konular

Geri
Üst