لا .. من خرج البيك غير معكوسة ن لاحظ:

بالنسبة للملف أظن انك عامل المشروع على بروتوس 8 وهو غير منصب عندي حاليا ، لكن مو مشكلة أنا سبق ونفذته على بروتوس 7.10 .
|
اخي جرب هذا الكود
كود:
void main(){
// variables
int x[5]={0, 1, 2, 4, 8};
char i = 1 , ss=0 ;
adcon1=6;
trisa = 0; trisb = 0; trisc = 0; trisd = 255; trise = 0;
porta = 0; portb = 0; portc = 0; portd = 0; porte = 0;
PWM1_Init(500); //initialise PWM1 at 5KHz
PWM1_Start(); //start PWM1
while(1) { // start infinit loop
portb.f7=1; //signal to motor forward direction
if (portd.f2 == 1) // if the push button is pushed
{
portb = x[i]; // indicator led according to motor speed
if(i ==1 && ss==0)
{
ss=1;
PWM1_Start();
}
PWM1_Set_Duty(i*255/4); // set duty cycle from 25% to 100%
i++;
delay_ms(200);
}
if (i > 4)
{
i = 0 ;
ss=0;
PWM1_Stop();
}
} //end loop
} //end main
يعني انت لازم توقف PWM وحاول ايضا تجعل طرف ccp1 =0 لان احتمال يتوقف الى جهد 5 فولت
ايضا لازم توقف خاصيه انلوك يعني adcon1=6
اخي مافائده buffer لاظنه ينفع !!
تحياتي