[ บทความ : ตัวอย่างสำหรับ AVR ตอนที่ 9 ] ทดสอบ PWM ของ ET-AVR V1/2 |
ตัวอย่างซอร์สโค้ดสำหรับติดต่อกับ PWM ของบอร์ด ET-AVR V1/2 (V1 จะต้องทำส่วนของ Connector เพิ่มเติมเอาเอง) เป็นดังนี้
;*************************************************************************** ;* A P P L I C A T I O N N O T E F O R T H E A V R F A M I L Y ;* ;* Number : ET-AVR V1/V2 ;* File Name :"pwm.asm" ;* Date :6/1/42 ;* Version :1.0 ;* Support telephone :712 1120-1 (ETT) ;* Support fax :3917216 (ETT) ;* Support www :www.etteam.com,www.ett.co.th ;* Target MCU :AT90S8535/AT90LS8535 ;* ;*************************************************************************** ; .include "8535def.inc" .org $000 rjmp RESET ;Reset Handle ;**************************************************************************** ;* ;* Test/Example Program ;* ;**************************************************************************** ; .def temp = r19 ; RESET: ldi temp,low(RAMEND) out SPL,temp ;init Stack Pointer Low ldi temp,high(RAMEND) out SPL+1,temp ;init Stack Pointer High ldi temp,0b00110000 ;set PORTD.5 and PORTD.4 output port out DDRD,temp ldi temp,0b10100001 ;set regiater TCCR1A out TCCR1A,temp ldi temp,0b00000011 ;set register TCCR1B out TCCR1B,temp loop: ldi temp,0x00 out OCR1AH,temp ldi temp,0x50 out OCR1AL,temp ldi temp,0x00 out OCR1BH,temp ldi temp,0x50 out OCR1BL,temp rjmp loop
;*************************************************************************** ;* A P P L I C A T I O N N O T E F O R T H E A V R F A M I L Y ;* ;* Number : ET-AVR V1/V2 ;* File Name :"pwm2.asm" ;* Date :6/1/42 ;* Version :1.0 ;* Support telephone :712 1120-1 (ETT) ;* Support fax :3917216 (ETT) ;* Support www :www.etteam.com,www.ett.co.th ;* Target MCU :AT90S8535/AT90LS8535 ;* ;*************************************************************************** ; .include "8535def.inc" .org $000 rjmp RESET ;Reset Handle ;**************************************************************************** ;* ;* Test/Example Program ;* ;**************************************************************************** ; .def temp =r19 ; RESET: ldi temp,low(RAMEND) out SPL,temp ;init Stack Pointer Low ldi temp,high(RAMEND) out SPL+1,temp ;init Stack Pointer High cli ;clear golbal interrupt ldi temp,0x50 ;initial duty cycle out OCR2,temp ldi temp,0x80 ;set PORTD.7 output port out DDRD,temp ldi temp,0b01100100 ;set regiater TCCR1A out TCCR2,temp loop: ldi temp,0xF1 out OCR2,temp rjmp loopสามารถ download ไฟล์ตัวอย่างของบอร์ด พร้อม assembler ได้เลยครับ