السلام عليكم ورحمة الله وبركاته أخوانى الأعزاء تحية طيبة .... وبعد
أحاول مؤخرا أن أتحكم فى سرعة ماتورين DC بأستخدام PWM على أن يكون التحكم بأستخدام مقاومتين متغيرتين أقوم بتوصيل إحداهما على A0 و الأخرى على A1 وأستخدم الميكروكنترولر 16F877A وأكتب الكود بأستخدام الميكروسى كالتالى :
signed int Pot_WIRE , Pot_CAR , Duty_Cycle_01, Duty_Cycle_02;
void main() {
TRISA = 1;
TRISB = 0;
TRISC = 0B11100000;
TRISD = 0B00110000;
TRISE = 0;
ADCON1 = 0B00001101;
CMCON = 0B00000111;
PWM1_Init(12000);
PWM2_Init(12000);
POT_WIRE = ADC_Read(0); // POT WIRE
delay_ms(2);
POT_CAR = ADC_Read(1); // POT CAR
delay_ms(2);
PWM1_Set_Duty(Duty_Cycle_01);
PWM2_Set_Duty(Duty_Cycle_02);
POT_WIRE = Duty_Cycle_01 >> 2;
POT_CAR = Duty_Cycle_02 >> 2;
PWM1_Set_Duty(Duty_Cycle_01);
PWM2_Set_Duty(Duty_Cycle_02);
PWM1_Start();
PWM2_Start();
ولكن هناك مشكلتان أولهما ان الكود لايعمل على البروتس وثانيهما أنه عند الكتابة على ميكروسى PRO فإنه عند بناء البرنامج يخرج رسالة فيما معناها أنه لايفهم الأمر ; ( PWM1_Init(12000 , وتقف عملية البناء . مع العلم أخوانى اننى مازلت أتعلم وهذا الكود كتبته كتجربة والا أعلم مدى الصحة الكاملة من الخطاء
أرجو ممن لديهم الخبرة ألا يبخلوا على أخيهم بالمعلومة وجزاكم الله كل خير .