Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

hi tech c derleme

Başlatan somaelektronikogr, 03 Şubat 2016, 02:39:11

somaelektronikogr

Merhaba.
Elimde hi tech c ile yazılmış bir kod var. bu kod içine bir kaç satır kod ekledim ama hi tech c den hiç anlamıyorum. mp lab 8.60 ı kurdum ama bir türlü derleyemedim. Çok acil bu devreyi yapmam lazım. Bu kodu benim için derleyebilir misiniz?  pic 16 f 628 a ile.

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

// Butonlar ve LED'ler için pin tanımlamaları
#define	BASLAT	RB4
#define 	DURDUR	RB5
#define	KIRMIZI	RB6
#define 	YESIL		RB7
#define	SIREN		RA4



// Konfigürasyon ayarları
__CONFIG(WDTDIS&LVPDIS&PWRTEN&XT);

// Global değişkenler
unsigned int CX;
unsigned char kontrol;

// TIMER Kesme Alt Programı
void interrupt kesme(void){
CX++;
if(CX>2000)kontrol=1; // Zaman aşımı için
T0IF=0; // Bayrağı temizle
TMR0=131; // TIMER'ı tekrar yükle
}

//------------ ANA PROGRAM -----------------
main(void)
{
unsigned char sonuc[]="GECiKME=        ";
unsigned int i,deger;
unsigned char sayi,hata;

// Port ayarları        	
TRISA=0x00; // Bütün pinler çıkış 
TRISB=0x30; // RB4,RB5 giriş, diğerleri çıkış 
PORTA=0; PORTB=0;  
CMCON=0x07;

// TIMER işlemleri
T0CS=0; // Dahili clock
PSA=0; // Prescaler TMR0 için ayarlı
PS0=0; PS1=1; PS2=0; // Oran 1:8
ei(); // Bütün kesmeler etkin
T0IE=0; //Başlangıçta TIMER pasif
T0IF=0; // Bayrağı temizle

DelayMs(250); // 250 ms bekle
lcd_init(); // LCD hazırlık aşaması 
lcd_clear(); // LCD'yi temizle
lcd_write(0x0C); // imleci gizle
lcd_goto(0x00); lcd_puts(" REFLEKS OLCER  ");
lcd_goto(0x40); lcd_puts(" BASLAT'A BASIN ");

for(;;){ // Ana işlem döngüsü
kontrol=0; CX=0; hata=0;

while(BASLAT==0); // Butona basılana kadar bekle

lcd_clear(); // Butona basılınca LCD'yi temizle

KIRMIZI=1; YESIL=0; // Kırmızı LED'i yak
lcd_goto(0x00); lcd_puts(" YESiL YANINCA  ");
lcd_goto(0x40); lcd_puts(" DURDUR'A BASIN ");

sayi=rand(); // rand() ile rastgele sayı üret
deger=3*sayi;
if(deger<=75)deger=deger+75; //en düşük 75 yap  

// Rastgele bir süre bekle. Süre=degerx(10 ms)
for(i=0;i<deger;i++){
DelayMs(10); 
if(DURDUR==1){hata=1; break;}
}

if(hata==1){ // Kırmızı ışıkta durdur'a basılırsa
lcd_goto(0x00); lcd_puts("BUTONA COK ERKEN");
lcd_goto(0x40); lcd_puts("   BASTIN !!!   ");
KIRMIZI=0;
}

else{
YESIL=1; KIRMIZI=0;  // Yeşil LED'i yak
SIREN=1;

TMR0=131;//125 sayım için değer yükle (256-131=125)
T0IE=1; // TIMER'ı başlat

while(DURDUR==0); //Durdur'a basılmadıysa bekle

T0IE=0; // TIMER'ı durdur

lcd_clear();
lcd_goto(0x00);

if(kontrol==0){//CX değerine göre uygun mesajı yaz
       if(CX<=100)lcd_puts("   TEBRiKLER !  ");
if(CX>100&CX<=200)lcd_puts("    MUKEMMEL    ");
if(CX>200&CX<=300)lcd_puts(" DAHA HIZLI OL  ");
if(CX>300&CX<=600)lcd_puts("BiRAZ PRATiK YAP");
if(CX>600&CX<=1000)lcd_puts("  COK YAVASSIN  ");
if(CX>1000&CX<2000)lcd_puts("UYUYORSUN GALiBA");

// Tepki süresini milisaniye cinsinden yaz
sprintf(sonuc+8,"%d ms",CX);
lcd_goto(0x40); lcd_puts(sonuc); DelayMs(100);  SIREN=0;
}
// Zaman aşımı durumunu dikkate al
else lcd_puts("  YENiDEN DENE  "); DelayMs(100); SIREN=0;

}  
} // İşlemleri tekrarla
}// Programın sonu

pwm.c

hi tech c emekli oldu. bunu kullananı zor bulursun. o nedenle kodlarını xc8'e dönüştürmek gerekir. ayrıca, mplab kurmakla iş bitmiyor. hi tech c ve xc8 için gerekli derleyici ayrı olarak kurulup mplab içine ekleniyor. 
birde, derleme için LCD kütübhanesine ihtiyaç var. hangi pinler nereye bağlı bunu bilmeden nasıl olacak?
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

somaelektronikogr

lcd için 
rb0=d4   
rb1=d5
rb2=d6
rb3=d7

ra2=rs
ra3=E



mehmet

xc8 kurulumu forumda mevcut, siz lcd.c dosyasını da
paylaşırsanız düzenlemenize yardım ederim...
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

somaelektronikogr

MPlab x  ve xc8 i kurdum. derlediğimde lcd.c dosyası ve lcd komutları ile ilgili satırlarda hata veriyor. elimde sadece c kodları ve hex kodu var. lcd dosyası elimde yok.

pwm.c

kodları XC8 e dönüştürüp derleme yaptım ve devre proteusta çalıştı.
lcd için kendi yaptığım kütübhanemi kullandım.

hex dosyası:
:020000000A28CC
:10000800FE00030EF0000A08F100DF2C0B28473031
:10001800DE01DF01E001C9004530CA004330CB00F2
:100028006930CC004B30CD004D30CE004530CF008C
:100038003D30D0002030D100D200D300D400D5000C
:10004800D600D700D8000130D901DA00DB01DC0185
:10005800DD0183012F28323084004930AE000408C6
:10006800AF001130B0002E08840083130008B100DF
:10007800AE0A2F08840031088000AF0AB00B372879
:10008800831685013030860083128501860107308A
:100098009F008316811281110110811401118B17A1
:1000A8008B120B11FA30F724DD231C250C307D232D
:1000B800003029258230F5008030F6000A254030CE
:1000C8002925A430F5008030F6000A25E001DE017C
:1000D800DF01C601061E6E281C25831203130617AE
:1000E8008613003029253E30F5008030F6000A25B9
:1000F800403029259330F5008030F6000A254B243E
:100108007A08C500F2000330F301F400F501C624B3
:100118007308C8007208C700003048024C30031941
:10012800470203189B284B30C7070318C80AC301A6
:10013800C401A128C30A0319C40A48084402031DBC
:10014800A728470843020318B1280A30F724831266
:100158000313861E9E28C601C60A460BC328003014
:100168002925C630F5008030F6000A2540302925BB
:100178001C30F5008030F6000A2506136A28861719
:1001880006130516833081008B16861EC9288B122C
:100198001C25003029256008031D512900305F0205
:1001A800653003195E020318DE282D30F500803013
:1001B800F6000A2500305F02653003195E02003040
:1001C800031CF2285F02C93003195E020318F128E4
:1001D8000B30F5008030F6000A2500305F02C93088
:1001E80003195E020130031C05295F022D30031933
:1001F8005E02031804296030F5008030F6000A25F5
:1002080001305F022D3003195E020230031C1829E9
:100218005F02593003195E0203181729D730F50019
:100228008030F6000A2502305F02593003195E0259
:100238000330031C2B295F02E93003195E020318FF
:100248002A297130F5008030F6000A2503305F0254
:10025800E93003195E02031C3D2907305F02D030E4
:1002680003195E0203183D29B530F5008030F60009
:100278000A25E830A4005F08A6005E08A5003A3009
:10028800FD22403029253230F500F6010A25643078
:10029800F72483120313051256294F30F5008030D6
:1002A800F6000A256430F7248312031305126A281E
:10040000FF1B0A2A83137F1883170008840A031925
:10041000FF0A080002308A000408840A82070034B8
:10042000013400340A34003464340034E8340334D2
:100430001034273420342034203420344D345534C3
:100440004B3445344D344D3445344C342034203411
:1004500020342034003420342034203442344134D9
:100460005334543449344E3420342134213421342B
:1004700020342034203400342034203420345434C8
:1004800045344234523469344B344C34453452345C
:10049000203421342034203400342034593445347D
:1004A000533469344C342034593441344E34493453
:1004B0004E3443344134203420340034203420344A
:1004C000593445344E346934443445344E34203440
:1004D000443445344E344534203420340034203400
:1004E00044344134483441342034483449345A3453
:1004F0004C34493420344F344C34203420340034CC
:100500002034203443344F344B3420345934413474
:10051000563441345334533449344E342034203427
:10052000003420345234453446344C3445344B3452
:10053000533420344F344C34433445345234203413
:100540002034003420344434553452344434553447
:100550005234273441342034423441345334493402
:100560004E342034003420344234413453344C343B
:1005700041345434273441342034423441345334E8
:1005800049344E34203400345534593455345934B8
:100590004F345234533455344E342034473441347C
:1005A0004C34693442344134003442345534543488
:1005B0004F344E344134203443344F344B342034A0
:1005C000453452344B3445344E340034423469346B
:1005D000523441345A342034503452344134543437
:1005E00069344B3420345934413450340034253488
:1005F000643420346D3473340034AC002530A700EB
:100600002408A40A84000A22AD002D080319712BC6
:1006100025302D0603190E2B7623002BA801240864
:10062000A40A84000A22AD00003A0319712B643A2F
:1006300003191E2B0D3A03191E2B002B27088400CB
:1006400083130008AA00840A0008AB00A70AA70ABF
:10065000AB1F312B0330A804AA09AB09AA0A03195E
:10066000AB0AAD01AD0A03102D0D013E84000A2234
:10067000FA000A22FB002B02031D402B7A082A02F3
:10068000031C472B0530AD0A2D06031D332B28080C
:1006900003390319512B2C0884002D30831380005B
:1006A000AC0A2D08A9006D2B0A30A000A10103108F
:1006B000290D013E84000A22F2000A22F3002B08D1
:1006C000F5002A08F40078247308A3007208A20039
:1006D000A2242008303EAD007623A903290F542B15
:1006E000002B2C0884008313800108002C08840050
:1006F0002D0883138000AC0A0800F4000D30F200CE
:10070000F20B802B740E0F39F300731C8B2B8312AA
:10071000031306148E2B8312031306107308F200C2
:100720000310F20C721C982B8312031386149B2B5C
:100730008312031386107308CE237308F200BC23C0
:10074000741CA62B831203130614A92B8312031304
:1007500006107408F2000310F20C721CB32B831203
:1007600003138614B62B8312031386107408CE234A
:100770007408F200BC2308000310F20C0310F20C02
:100780000310F20C721CC82B831203138615CB2B9B
:10079000831203138611851585110800F2000310DA
:1007A000F20C0310F20C721CD92B831203130615E2
:1007B00008008312031306110800831203130511A6
:1007C00085111430F8007930F700F70BE52BF80BA2
:1007D000E52BEA2B8312031306140D240730F800CF
:1007E0007D30F700F70BF22BF80BF22B132442307D
:1007F000F700F70BF92B000013244230F700F70B3A
:10080000FF2B00008312031306100D2428307D23D4
:100810000C307D231C2506307D2B86140611861195
:1008200085158511080083120313851585110800AD
:10083000A001A101A201A301721C322C7608A0071D
:10084000770803110318013E031DA107780803115F
:100850000318013E031DA207790803110318013E86
:10086000031DA3070310F60DF70DF80DF90D031086
:10087000F50CF40CF30CF20C750874047304720498
:10088000031D1C2C2308F5002208F4002108F300A6
:100890002008F20008004130F500C630F4004E3068
:1008A000F3006D30F2005D08F9005C08F8005B08A9
:1008B000F7005A08F60018247508DD007408DC00FB
:1008C0007308DB007208DA003930DA0730300318B9
:1008D0003130DB07003003180130DC07003003182B
:1008E0000130DD075D08FB005C08FA00FB1308001F
:1008F000F601F7017208730403199D2CF801F80A38
:10090000F31B862C0310F20DF30D7F2C0310F60D54
:10091000F70D73087502031D8F2C72087402031CF7
:10092000992C7208F4027308031CF503F50276147F
:100930000310F30CF20CF80B862C7708F300760802
:10094000F2000800200821040319C12CF901F90A5A
:10095000A11BAE2C0310A00DA10DA72C2108230272
:10096000031DB42C20082202031CBD2C2008A20267
:100970002108031CA303A3020310A10CA00CF90B74
:10098000AE2C2308A1002208A0000800F601F70100
:10099000721CD02C7408F6070318F70A7508F707BD
:1009A0000310F40DF50D0310F30CF20C7208730430
:1009B000031DC82C7708F3007608F20008008312A4
:1009C0000313DE0A0319DF0A07305F02D13003196F
:1009D0005E02031CED2CE001E00A0B118330810064
:1009E00071088A00700E8300FE0E7E0E0900F20070
:1009F000F203720FFC2C08000430F300062D673060
:100A0000F400042D00000000F40B022DF303730F1B
:100A1000FF2CF82C051517250022003A03190800B1
:100A2000172500227D23F50A0319F60A0B2D7608F7
:100A3000FF00750884000800051101307D23033094
:100A4000F6009730F500F50B232DF60B232D282DFE
:100A50000800F5008312031305117508803E7D2BF5
:02400E00E9FFC8
:00000001FF


kolay gelsin.
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

somaelektronikogr

Zaman harcadığın için teşekkürler. Fakat benim devrede RA4 portuna siren bağlayacaktım. RB7 deki yesil led yanınca Ra4 teki sirenin de  bir süre 1 olup  tekrar sıfır  olması gerekiyordu. yukardaki c kodlarını bu şekilde yazdım. yalnız senin gönderdiğin hex kodlarına göre siren çıkışı 1 olmuyor ve ilk seferde kırmızıdan sonra yeşil ledin yanması daha da uzamış. normalde 5-6 sn içinde  rb7 deki yeşil ledin yanması gerekiyordu.

somaelektronikogr

yukardaki kodda SIRENİ RA4 ten alıp RA0 a bağlayabilir misin? Sanırım RA4 çıkış konusunda sıkıntı çıkarıyormuş. 
Şu şekilde

// Butonlar ve LED'ler için pin tanımlamaları
#define   BASLAT        RB4
#define    DURDUR      RB5
#define   KIRMIZI           RB6
#define    YESIL      RB7
#define   SIREN      RA0

pwm.c

Alıntı yapılan: somaelektronikogr - 06 Şubat 2016, 17:02:41
Zaman harcadığın için teşekkürler. Fakat benim devrede RA4 portuna siren bağlayacaktım. RB7 deki yesil led yanınca Ra4 teki sirenin de  bir süre 1 olup  tekrar sıfır  olması gerekiyordu. yukardaki c kodlarını bu şekilde yazdım. yalnız senin gönderdiğin hex kodlarına göre siren çıkışı 1 olmuyor ve ilk seferde kırmızıdan sonra yeşil ledin yanması daha da uzamış. normalde 5-6 sn içinde  rb7 deki yeşil ledin yanması gerekiyordu.

kodları email adresine gönderdim.

kolay gelsin.
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

dursuncemal

ra4 portu (Output is open drain type.)  cikis olarak kullanilmak istendiginde  + ya cekmek  icin pul up direnci baglamak gerekir. 


mesaj birleştirme:: 08 Şubat 2016, 02:23:16

Alıntı yapılan: somaelektronikogr - 06 Şubat 2016, 17:02:41
Zaman harcadığın için teşekkürler. Fakat benim devrede RA4 portuna siren bağlayacaktım. RB7 deki yesil led yanınca Ra4 teki sirenin de  bir süre 1 olup  tekrar sıfır  olması gerekiyordu. yukardaki c kodlarını bu şekilde yazdım. yalnız senin gönderdiğin hex kodlarına göre siren çıkışı 1 olmuyor ve ilk seferde kırmızıdan sonra yeşil ledin yanması daha da uzamış. normalde 5-6 sn içinde  rb7 deki yeşil ledin yanması gerekiyordu.
:=