Sayısal kumbara sorunnnn

Başlatan aka3200, 21 Mart 2017, 09:08:50

aka3200

Herkese merhaba,
Geçenlerde bir projeye rastladım sayısal kumbara diye. Pic16f628a, cny70, 74hc14 ve lcd ile yapılıyordu. Atılan paraları lcd (2×16) ekranda gosteriyor. Şimdi aynen yaptım ama çalıştıramadım.  Aşağıda vereceğim kodlar galiba hi-tech c ile yazılmış. Acaba bu kodları microC pro koduna cevirebilecek olan güzel bir insan var mıdır? Çok müteşekkir olurum çevirene.

Kod
#include <pic.h>
#include <delay.c>
#include <lcd.c>
#include <stdio.h>

// Konfigurasyon ayarlari
__CONFIG(WDTDIS&PWRTEN&LVPDIS&INTIO);

#define alici1 RA0
#define alici2 RA1
#define alici3 RB4
#define alici4 RB5
#define alici5 RB6
#define alici6 RB7

// Degisken tanimlamalari
float sayac;
unsigned char lira,kurus;
unsigned char miktar[]="                ";

//LCD alt programi
void LCD_yaz(void){
lcd_clear();   
lira=(int)(sayac/100);
kurus=(int)(sayac-lira*100);
lcd_goto(0x00); lcd_puts("Dijital Kumbara");
sprintf(miktar,"%dLira %dKurus",lira,kurus);
lcd_goto(0x40); lcd_puts(miktar);
EEPROM_WRITE(1,lira);
EEPROM_WRITE(2,kurus);
}   

// Ana Program
main(void)
{

// Port ayarlari
TRISA=0x13;
TRISB=0xF0;
CMCON=0x07;
PORTA=0;
PORTB=0;
DelayMs(250);
lcd_init();
lcd_clear();
   
// Sifirla butonuna basili mi?
if(RA4==0){
   EEPROM_WRITE(1,0);
   EEPROM_WRITE(2,0);
}
//EEPROM islemleri
if(EEPROM_READ(0)=='Y'){
    lira=EEPROM_READ(1);
   kurus=EEPROM_READ(2);
   sayac=lira*100+kurus;
   }
else{
   EEPROM_WRITE(0,'Y');
   sayac=0;
   }
LCD_yaz();

// 6 adet CNY70 sensorunu kontrol et   
for(;;  ){
   if(alici1==1){while(alici1==1); sayac+=1;  LCD_yaz();}
   if(alici2==1){while(alici2==1); sayac+=5;  LCD_yaz();}
   if(alici3==1){while(alici3==1); sayac+=10; LCD_yaz();}
   if(alici4==1){while(alici4==1); sayac+=25; LCD_yaz();}
   if(alici5==1){while(alici5==1); sayac+=50; LCD_yaz();}
   if(alici6==1){while(alici6==1); sayac+=100;LCD_yaz();}
   DelayMs(100);
   }
}// Program sonu

pwm.c

#1
eskiden bunu XC8 derleyicisine göre dönüştürmüştüm. istersen vereyim ama orjinali ile aynı olmaz.
ayrıca, devreyi çalıştıramadıysan sorun donanımdan kaynaklı olabilir. eğer öyleyse farklı programlarda yazılması bişey değiştirmez.
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

aka3200

Alıntı yapılan: pwm.c - 21 Mart 2017, 18:39:36eskiden bunu XC8 derleyicisine göre dönüştürmüştüm. istersen vereyim ama orjinali ile aynı olmaz.
ayrıca, devreyi çalıştıramadıysan sorun donanımdan kaynaklı olabilir. eğer öyleyse farklı progralarda yazılması bişey değiştirmez.
ilginize çok teşekkür ederim. Çalıştırdım sonunda evet donanımsal imiş sorun. Bir şey rica edebilir miyim? bu kodlar hangi program ile yazılmış acaba?
MicroC pro plus
mplab ide
mplam x ide
pic c compiler
hi-tech bunları denedim.
kodları kopyaladım. Ama derlerken hata veriyor. Sorun neden kaynaklı acaba? yoksa ben mi yanlış yapıyorum? İlginize çok teşekkür ediyorum. (amacım oradaki "dijital kumbara" yerine başka birşey yazdırmak ama bir türlü derleyemedim.

pwm.c

kodlar eski HI-TECH C derleyicisine ait.
Microchip firması bunu satın aldı ve bir süre sonra XC8 derleyicilerini çıkardıktan sonra hi-tech c desteğini kesti. bu ikisi hemen hemen aynı gibi.
Derleme sorunu yaşıyorsanız muhtemelen ayarları doğru yapamamış olmalısınız. ayrıca "lcd" ve "delay" kütüphanelerini proje dosyasına ilave etmeniz gerekiyor.
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

aka3200

Alıntı yapılan: pwm.c - 21 Mart 2017, 20:28:05kodlar eski HI-TECH C derleyicisine ait.
Microchip firması bunu satın aldı ve bir süre sonra XC8 derleyicilerini çıkardıktan sonra hi-tech c desteğini kesti. bu ikisi hemen hemen aynı gibi.
Derleme sorunu yaşıyorsanız muhtemelen ayarları doğru yapamamış olmalısınız. ayrıca "lcd" ve "delay" kütüphanelerini proje dosyasına ilave etmeniz gerekiyor.
peki çok teşekkür ederim. rica etsem xc8 için derlediğinizi verebilir misiniz?

pwm.c

Alıntı yapılan: aka3200 - 21 Mart 2017, 21:09:49peki çok teşekkür ederim. rica etsem xc8 için derlediğinizi verebilir misiniz?

buyurun:
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

aka3200

Çok teşekkür ederim. Ilginize ve yardımlarınıza çok teşekkür ederim.

Hızlı Yanıt

Not: Bu konu bir moderatör tarafından onaylanmadan görüntülenmeyecektir.

Adı:
E-Posta:
Doğrulama:
Lütfen bu kutuyu boş bırakın:
IRFP250 Nedir:
kısayollar: göndermek için alt+s veya önizleme yapmak için alt+p'ye basın