سلام به مهندسین عزیز. راستش من یه هدر برا codevision نوشتم که تو این هدر سه تا تابع وجود داره. که یکی مال کیپد 4*3 و یکی کیپد 4*4 و یکی هم نشون دادن متغیر int تو lcd هستش و این رو گذاشتم تو پوشه inc تا اینجا مشکلی که نیست!!!! و بعد اومدم تو برنامه استفاده کردم با نوشتن اسم هدر تو اول برنامه و استفاده از تابع ها. اما تو برنامه که استفاده میکنم مثلا کیپد 4*4 رو میگه که اون دو تا تابع دیگه رو هم نوشتی اما استفاده نکردی!!!!!!!!! با eeror های زیر:
function 'get_key34' was defined, but not referenced
function 'lcd_int' was defined, but not referenced
با این کار امدم فقط جای اینکه این تابع ها رو تو برنامه اصلی بنویسم بردم تو یه هدر فایل. و اونا هم علاه بر تابع اصلیم کامپایل میشن و به حجم کدم اضافه میکنن.
اینم هدره هستش:
فکر نکنم نوشتن کتابخونه اینجوری باشه. فکر کنم با دستورات ماکرو خیلی راحت تر بشه این کار رو کرد. میدونم میشه اینا رو تو چند تا هدر هم ریخت اما اونجوری گیج میشم که هدر هر قطعه چی بوده. راستی من تازه دستورات پیش پردازنده رو یاد گرفتم. اگه کسی بتونه من رو با این دستورات راهنمایی کنه که این رو بنویسم خیلی کارم راه میفته. آخه کل برنامه همین فایلای تکراری میشن و اگه بتونم یه کتابخونه برا خودم بنویسم خیلی خوب میشه. پیشاپیش ممنون. :smile:
function 'get_key34' was defined, but not referenced
function 'lcd_int' was defined, but not referenced
با این کار امدم فقط جای اینکه این تابع ها رو تو برنامه اصلی بنویسم بردم تو یه هدر فایل. و اونا هم علاه بر تابع اصلیم کامپایل میشن و به حجم کدم اضافه میکنن.
اینم هدره هستش:
کد:
#include <stdlib.h> #include <delay.h> #include <lcd.h> //===============================get_key34========================== int get_key34(int data){ DDRC=0x0f; //****************************** PORTC=0xff; PORTC.0=0; delay_ms(15); if(PINC.4==0)data=0; if(PINC.5==0)data=1; if(PINC.6==0)data=2; //******************************* PORTC=0xff; PORTC.1=0; delay_ms(15); if(PINC.4==0)data=3; if(PINC.5==0)data=4; if(PINC.6==0)data=5; //**************************** PORTC=0xff; PORTC.2=0; delay_ms(15); if(PINC.4==0)data=6; if(PINC.5==0)data=7; if(PINC.6==0)data=8; //**************************** PORTC=0xff; PORTC.3=0; delay_ms(15); if(PINC.4==0)data=9; if(PINC.5==0)data=10; if(PINC.6==0)data=11; //**************************** return data; } //====================================get_key44====================== int get_key44(int data){ DDRC=0x0f; //****************************** PORTC=0xff; PORTC.0=0; delay_ms(15); if(PINC.4==0)data=0; if(PINC.5==0)data=1; if(PINC.6==0)data=2; if(PINC.7==0)data=3; //******************************* PORTC=0xff; PORTC.1=0; delay_ms(15); if(PINC.4==0)data=4; if(PINC.5==0)data=5; if(PINC.6==0)data=6; if(PINC.7==0)data=7; //**************************** PORTC=0xff; PORTC.2=0; delay_ms(15); if(PINC.4==0)data=8; if(PINC.5==0)data=9; if(PINC.6==0)data=10; if(PINC.7==0)data=11; //**************************** PORTC=0xff; PORTC.3=0; delay_ms(15); if(PINC.4==0)data=12; if(PINC.5==0)data=13; if(PINC.6==0)data=14; if(PINC.7==0)data=15; //**************************** return data; } //=============================lcd_int=================================== void lcd_int(int data){ char data2[100]; itoa(data,data2); lcd_puts(data2); }
دیدگاه