;*************************************************************************** ; ; File Name :'pwm6.asm" ; Title :6 chanel Phase and Frequency Correct PWM ; Date :2003.11.15. ; Version :1.0.0 ; Support telephone :+36-70-333-4034, Old: +36-30-9541-658 ; Support fax : ; Support Email :info@vfx.hu ; Target MCU :ATmega128 ; ;*************************************************************************** ; D E S C R I P T I O N ; ; ;*************************************************************************** ; M O D I F I C A T I O N H I S T O R Y ; ; ; rev. date who why ; ---- ---------- --- -------------------------------------------- ; 0.01 2003.11.15 VFX Creation ; ; ;*************************************************************************** ;Hardware ;*************************************************************************** ;* ;* Oscillator: f=external, 16.0000 MHz (T=62.5ns) == SYSCLK ;* ;*************************************************************************** ;* Const Def ;************************************************************************** ;* Hardware Def. ; ;*************************************************************************** ;**** VARIABLES .DSEG ;*************************************************************************** .ESEG ;*************************************************************************** ;**** I N T E R R U P T S ;**** ;*************************************************************************** .CSEG ;************************************************************************ ;************************************************************************ ;** PWM6_Init ;** ;** Timer1 & Timer3 setup ; PWM6_Init: ; ldi R16,0b00010000 ;ICNC3 ICES3 – WGM33 WGM32 CS32 CS31 CS30 ; out TCCR1B,R16 ;Timers Stop ; sts TCCR3B,R16 clr R16 sts TCNT3H,R16 sts TCNT3L,R16 ;Counter=0 out TCNT1H,R16 out TCNT1L,R16 sts TCCR3C,R16 ;FOC3A FOC3B FOC3C sts TCCR1C,R16 out OCR1AH,R16 ;PWM = 0% out OCR1AL,R16 out OCR1BH,R16 out OCR1BL,R16 sts OCR1CH,R16 sts OCR1CL,R16 sts OCR3AH,R16 sts OCR3AL,R16 sts OCR3BH,R16 sts OCR3BL,R16 sts OCR3CH,R16 sts OCR3CL,R16 in R16,PORTB andi R16,0b00011111 out PORTB,R16 in R16,DDRB ori R16,0b11100000 out DDRB,R16 ;PWM0..2 as output in R16,PORTE andi R16,0b11000111 out PORTE,R16 in R16,DDRE ori R16,0b00111000 out DDRE,R16 ;PWM3..5 as output ldi R16,0x03 ;PWM width = 10 bit sts ICR3H,R16 ldi R16,0xFF sts ICR3L,R16 ldi R16,0x03 out ICR1H,R16 ldi R16,0xFF out ICR1L,R16 in R16,TIMSK andi R16,0b11000011 out TIMSK,R16 ;Interrupt disabled ldi R16,0b00000000 ;TICIE3 OCIE3A OCIE3B TOIE3 OCIE3C OCIE1C sts ETIMSK,R16 ldi R16,0b10101000 out TCCR1A,R16 ;COM1A1 COM1A0 COM1B1 COM1B0 COM1C1 COM1C0 WGM11 WGM10 sts TCCR3A,R16 ;COM3A1 COM3A0 COM3B1 COM3B0 COM3C1 COM3C0 WGM31 WGM30 ldi R16,0b00010001 out TCCR1B,R16 ;Start PWM sts TCCR3B,R16 ret