:: مهندس متواجد ::
تاريخ التسجيل: Feb 2010
المشاركات: 151
|
|
نشاط [ hamdysoltan ]
قوة السمعة:0
|
|
27-03-2013, 07:46 PM
المشاركة 2
|
|
السلام عليكم و رحمة الله و بركاته
اخواني لو ممكن مساعدتي في تعديل هذا البرنامج و هو عبارة عن FREQUENCY METER واجهتني مشكلة في قياس التردد بدقة عالية مثلا لو ارسلنا تردد قيمته 49.55 hz يقوم البرنامج باخراج 50 او 49 hz فقط مشكلتي مع float
ارجو المساعدة و السلام عليكم و رحمة الله
البرنامج من هنا :
http://www.mediafire.com/?nshjh8xp103i41x
|
ربنا يوفقكم وياريت تجرب الكود ده ولو ما طلعش شغال حط لى المشروع بالبروتس وانا هحاول اعمله لك واعرفك المشكلة ان شاء الله
كود:
char cnt;
float speed,frequence;
char txt[10];
char hz[6];
void interrupt()
{
cnt++;
INTCON.T0IF= 0;
}
void main()
{
TRISB = 0;
TRISA = 0xff;
Lcd_Init(&PORTD);
Lcd_Cmd(Lcd_CLEAR);
Lcd_Cmd(Lcd_CURSOR_OFF);
OPTION_REG = 0b00101111;
INTCON = 0b10100000;
Lcd_Out(1,1,"frequency");
delay_ms(1000);
Lcd_Cmd(Lcd_CLEAR);
Lcd_Out(1,1,"RPM :");
Lcd_Out(2,1,"Freq:");
// Lcd_Out(2,17,"Hz");
loop:
speed=0;
cnt = 0;
tmr0=0;
delay_ms(1000);
speed=tmr0+(255*cnt);
speed=speed*60;
frequence=tmr0+(255*cnt);
floatToStr(speed, txt);
floatToStr(frequence, hz);
Lcd_Out(1,7,txt);
Lcd_Out(2,9,hz);
goto loop;
}
|
|