Initializing the MSP50C6xx

orb a0,0x7c

 

;set PLLM for CPU clock of 8 MHz

mov *save_clkspdctrl,a0

;save the ClkSpdCtrl value for later, when

 

;waking up from mid or deep sleep

mov a0~,TIM2REFOSC + TIM2IMR ;disable TIMER 2

out IntGenCtrl,a0~

 

mov a0~,6553

;setup a 200 ms period

out TIM2,a0~

;load TIM2 and PRD2 in one fell swoop

mov a0~,TIM2ENABLE + TIM2REFOSC + TIM2IMR

out IntGenCtrl,a0~

;use 32 kHz crystal as source, wake up from TIM2

out ClkSpdCtrl,a0

 

;set clock to full speed!

idle

;go to sleep...

nop

;wake up 200 ms later, clock running at full speed

nop

 

 

nop

 

 

;****************************************************************

;Upon reset all ports are set to input and port G output is set

;low (0x0000). Therefore it remains only to enable the pullups

;on port F. ;****************************************************************

in a0,IntGenCtrl

or a0,PFPULLUPS

;enable port F pullups

and a0,~TIM2IMR

;turn off TIMER 2 interrupt

and a0,~TIM2ENABLE

;turn off TIMER 2 ––– added 28.11.99

out IntGenCtrl,a0

 

;****************************************************************

;Set the DAC to 10 bits, C3x style. For C5x style set bit 3

;high.

;****************************************************************

movb a0,0x02

;choose 10 bit DAC, C3x style

orb a0,DACON

;enable DAC

out DACCTRL,a0

;switch DAC on

;****************************************************************

;Initialization complete. Now tidy up and branch to the main

;user code. ;****************************************************************

zac a0

;tidy up

zac a0~

 

jmp _main

;jump to the main program

Applications6-7

Page 361
Image 361
Texas Instruments MSP50C6xx manual Applications6-7