in this code i want to increase duty until Feedback is equal to 3, then to break the loop after feedback is equal to 3, then to take this value of duty which made feedback equal to 3 out of loop and to continue to output this constant duty.
In Pic basic is it possible to use this break statement as in c language, if yes how? If no help me alternative way to solve this problem, thanx in advance
Code:* '**************************************************************** clear DEFINE ADC_BITS 8 DEFINE ADC_CLOCK 3 DEFINE ADC_SAMPLEUS 50 ' Duty cycle value (CCPR1L:CCP1CON<5:4>) Feedback var word ADCON1=%00000010 duty VAR WORD ' Duty cycle value (CCPR1L:CCP1CON<5:4>) TRISA = %11111111 TRISB = %11111111 TRISC = %11111011 ' Set PORTC.2 (CCP1) to output CCP1CON = %00001100 ' Set CCP1 to PWM T2CON = %00000101 ' Turn on Timer2, Prescale=4 ' Use formula to determine PR2 value for a 1KHz signal, ' 4MHz clock, and prescale=4. (4E6/(4*4*1E3))-1=249 PR2 = 249 ' Set PR2 to get 1KHz out ' Use formula to determine CCPR1L:CCP1CON<5:4> value for ' ends of range 20% to 80%. (249+1)*4*0.2=200 (20% value) ' (249+1)*4*0.8=800 (80% value) duty = 0 ' Set duty cycle to 0% mainloop: adcin 0, feedback CCP1CON.4 = duty.0 ' Store duty to registers as CCP1CON.5 = duty.1 ' a 10-bit word CCPR1L = DUTY >> 2 duty = duty + 1 ' Increase duty cycle ' Since the total sweep of duty is 1000 (1000-0) and ' we are adding 1 for each loop, that results in 60 ' steps min to max. 1 second divided by 1000 = 1mS Pause 1 ' Pause 1/60 of second IF (feedback => 3) Then ' *****break the loop**** endif GoTo mainloop ' Do it forever CCP1CON.4 = duty.0 ' Store duty to registers as CCP1CON.5 = duty.1 ' a 10-bit word CCPR1L = DUTY >> 2 End




Bookmarks