<div>// DC Motor PWM Test</div> <div>// PWM FREQ. = 250 Hz</div> <div>// TIMER/Count1, Fast PWM Mode : 7</div> <div>#include <avr/io.h></div> <div>#include <avr/interrupt.h></div> <div>#include "ATmega128_v20.H"</div> <div><br></div> <div>unsigned int sum, ad_result;</div> <div><br></div> <div>ISR(TIMER3_OVF_vect) {</div> <div>OCR3A = ad_result; // Port: PE3</div> <div>}</div> <div><br></div> <div>int ADConvertor(char ch)</div> <div>{</div> <div> ADMUX = (ch & 0x1F) | 0x40; </div> <div><br></div> <div> ADCSRA = 0xC7; </div> <div><br></div> <div> while((ADCSRA & 0x10) != 0x10); </div> <div> sum = ADCL+ADCH*256;</div> <div><br></div> <div> return(ADC);</div> <div>}</div> <div><br></div> <div>int main(void)</div> <div>{</div> <div>unsigned int ADC6=0, ADC7=0; </div> <div> MCU_initialize();</div> <div> LCD_initialize();</div> <div> LCD_string(0x80,"DC Motor Test");</div> <div> LCD_string(0xC0," Tested By AACL ");</div> <div> /////////////////////////////////////////////////////////</div> <div> // Timer/Counter-3 Initialize for DC Motor PWM control //</div> <div> /////////////////////////////////////////////////////////</div> <div>TCCR3A = 0x83; </div> <div>TCCR3B = 0x0B; </div> <div>TCCR3C = 0x00; </div> <div>TCNT3H = 0x00; </div> <div>TCNT3L = 0x00; </div> <div>ETIMSK = 0x04; </div> <div><br></div> <div>sei();</div> <div>Delay_ms(1000);</div> <div><br></div> <div>LCD_string(0x80,"AD6: % AD7: %");</div> <div>LCD_string(0xC0," ");</div> <div><br></div> <div>while(1)</div> <div>{</div> <div>ad_result = ADConvertor(6);</div> <div><br></div> <div>ADC6 = (sum/102.3*10);</div> <div>LCD_command(0xC0+4);</div> <div>LCD_3d(ADC6);</div> <div><br></div> <div>};</div> <div>}</div> <div><br></div> <div>이게 dc모터 정방향으로 회전됩니다.. 여기서 역방향과 정지는 어떻게 구현해야할지 감이 안오네요 ㅠㅠ 도와주시면 감사하겠습니다. ㅠㅠ</div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.