سلام دوستان و اساتید محترم.
من میخام چهار موتور dc رو توسط میکروکنترلر ATmega1284p و درایور L298N از طریق pwm کنترل کنم. همانطور که میدونید این میکرو 2تایمر 8bit و 2تایمر 16bit داره.
من از تایمر های 16بیتی 1 و 3 استفاده کردم.
مشکل من اینجاست که با اینکه کانفیگ هر دو تایمر یکسان است اما pwm تولید شده توسط تایمر 1 با تایمر3 تفاوت دارد. درواقع هر دو سیگنال تایمر 1 هم باهمدیگر فرق میکنند و هم با سیگنالهای تایمر3 (این دو باهم یکسان هستند) متفاوت هستند. و از آنجایی که من نیز در این زمینه مبتدی هستم نمیدونم چکار کنم.
من میخام همه سیگنالها مثل سیگنال تایمر 3 یکسان و یکنواخت بشوند تا بتوانم سرعت موتورها رو کنترل کنم.
تصویر زیر به خوبی منظور من رو میرسونه
و این هم کد بیسکام:
لطفا راهنمایی بفرمایید.
سپاس.
من میخام چهار موتور dc رو توسط میکروکنترلر ATmega1284p و درایور L298N از طریق pwm کنترل کنم. همانطور که میدونید این میکرو 2تایمر 8bit و 2تایمر 16bit داره.
من از تایمر های 16بیتی 1 و 3 استفاده کردم.
مشکل من اینجاست که با اینکه کانفیگ هر دو تایمر یکسان است اما pwm تولید شده توسط تایمر 1 با تایمر3 تفاوت دارد. درواقع هر دو سیگنال تایمر 1 هم باهمدیگر فرق میکنند و هم با سیگنالهای تایمر3 (این دو باهم یکسان هستند) متفاوت هستند. و از آنجایی که من نیز در این زمینه مبتدی هستم نمیدونم چکار کنم.
من میخام همه سیگنالها مثل سیگنال تایمر 3 یکسان و یکنواخت بشوند تا بتوانم سرعت موتورها رو کنترل کنم.
تصویر زیر به خوبی منظور من رو میرسونه
و این هم کد بیسکام:
کد:
$regfile = "m1284pdef.dat" $crystal = 8000000 '#16bit: Config Timer1 = Pwm , Pwm = 8 , Prescale = 256 , Compare_A_Pwm = Clear Up , Compare_B_Pwm = Clear Up Config Timer3 = Pwm , Pwm = 8 , Prescale = 256 , Compare_A_Pwm = Clear Up , Compare_B_Pwm = Clear Up Enable Interrupts Enable oc1a Enable oc1b Enable oc3a Enable oc3b Enable Timer1 Enable Timer3 Config Porta = Input 'Controller Commands Config Portc = Output 'Pins To L298 Driver '#pwm Config Portd.5 = Output 'PWM1A Config Portd.4 = Output 'PWM1B Config Portb.6 = Output 'PWM3A Config Portb.7 = Output 'PWM3B 'Normal Start Pwm1a = 125 Pwm1b = 125 Pwm3a = 125 Pwm3b = 125 'Pins To L298 inputs: Portc.0 = 1 Portc.1 = 0 Portc.2 = 1 Portc.3 = 0 Portc.4 = 0 Portc.5 = 1 Portc.6 = 0 Portc.7 = 1
لطفا راهنمایی بفرمایید.
سپاس.