ccs c eeprom kullanımı

Katılım
27 May 2007
Mesajlar
50
Puanları
1
Yaş
39
#include<16f877.h>

#use delay (clock=4000000)
const int digit[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7C,0x07,0x7F,0x6F};

int sayi=0;
void main()
{
sayi=read_eeprom(1);

while(1)
{
if(input(pin_a0))
{
while(input(pin_a0));
sayi++;

write_eeprom(1,sayi);
}
if(input(pin_a1))
{
while(input(pin_a1))
sayi--;
write_eeprom(1,sayi);
}
if(sayi>9)
{
sayi=0;
}
output_b(digit[sayi]);
}
}
Bu programda 7 segment display de A0 girişinden 0 'dan 9 'a kadar saydırmak ,
A1 girişinden geri saydırmak istiyorum.İleri sayma yapıyor ancak geri sayma için A1'e basınca display "0" sıfır oluyor. Bunun nedeni ne olabilir?(Proteus da deneme yapıyorum)
 
while(input(pin_a1)) dan sonra ; yok...
butonlarını nasıl bağladın? pull-down olduğunu düşünüyorum...
bir de sayı değeri 0 iken bir azaltma yaptığınızda değişken int yani 8 bitlik olduğundan değeri 255 olur. if döngüsünde sayı 9 dan büyük olduğu için değer hep sıfırlanır....
#include<16f877.h>

#use delay (clock=4000000)
const int digit[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7C,0x07,0x7F,0x6F};

int sayi=0;
void main()
{
set_tris_a(0xff);
set_tris_b(0x00);
sayi=read_eeprom(1);

while(1)
{
if(input(pin_a0))
{
while(input(pin_a0));
sayi++;
if(sayi>9)
{
sayi=9;
}

write_eeprom(1,sayi);
}
if(input(pin_a1))
{
while(input(pin_a1));
sayi--;
if(sayi>9)
{
sayi=0;
}
write_eeprom(1,sayi);
}

output_b(digit[sayi]);
}
}

bir de böyle dener misin?
 
Dediğiniz gibi While(input(pin_a1)) den sonra ; yazarak sorun çözüldü .Yardımın için teşekkürler
 

Forum istatistikleri

Konular
128,188
Mesajlar
915,704
Kullanıcılar
449,957
Son üye
sezercakmak

Yeni konular

Geri
Üst