📄 tbpwmdaccode.s43
字号:
; THIS PROGRAM IS PROVIDED "AS IS". TI MAKES NO WARRANTIES OR
; REPRESENTATIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
; INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
; FOR A PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR
; COMPLETENESS OF RESPONSES, RESULTS AND LACK OF NEGLIGENCE.
; TI DISCLAIMS ANY WARRANTY OF TITLE, QUIET ENJOYMENT, QUIET
; POSSESSION, AND NON-INFRINGEMENT OF ANY THIRD PARTY
; INTELLECTUAL PROPERTY RIGHTS WITH REGARD TO THE PROGRAM OR
; YOUR USE OF THE PROGRAM.
;
; IN NO EVENT SHALL TI BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
; CONSEQUENTIAL OR INDIRECT DAMAGES, HOWEVER CAUSED, ON ANY
; THEORY OF LIABILITY AND WHETHER OR NOT TI HAS BEEN ADVISED
; OF THE POSSIBILITY OF SUCH DAMAGES, ARISING IN ANY WAY OUT
; OF THIS AGREEMENT, THE PROGRAM, OR YOUR USE OF THE PROGRAM.
; EXCLUDED DAMAGES INCLUDE, BUT ARE NOT LIMITED TO, COST OF
; REMOVAL OR REINSTALLATION, COMPUTER TIME, LABOR COSTS, LOSS
; OF GOODWILL, LOSS OF PROFITS, LOSS OF SAVINGS, OR LOSS OF
; USE OR INTERRUPTION OF BUSINESS. IN NO EVENT WILL TI'S
; AGGREGATE LIABILITY UNDER THIS AGREEMENT OR ARISING OUT OF
; YOUR USE OF THE PROGRAM EXCEED FIVE HUNDRED DOLLARS
; (U.S.$500).
;
; Unless otherwise stated, the Program written and copyrighted
; by Texas Instruments is distributed as "freeware". You may,
; only under TI's copyright in the Program, use and modify the
; Program without any charge or restriction. You may
; distribute to third parties, provided that you transfer a
; copy of this license to the third party and the third party
; agrees to these terms by its first use of the Program. You
; must reproduce the copyright notice and any other legend of
; ownership on each copy or partial copy, of the Program.
;
; You acknowledge and agree that the Program contains
; copyrighted material, trade secrets and other TI proprietary
; information and is protected by copyright laws,
; international copyright treaties, and trade secret laws, as
; well as other intellectual property laws. To protect TI's
; rights in the Program, you agree not to decompile, reverse
; engineer, disassemble or otherwise translate any object code
; versions of the Program to a human-readable form. You agree
; that in no event will you alter, remove or destroy any
; copyright notice included in the Program. TI reserves all
; rights not specifically granted under this license. Except
; as specifically provided herein, nothing in this agreement
; shall be construed as conferring by implication, estoppel,
; or otherwise, upon you, any license or other right under any
; TI patents, copyrights or trade secrets.
;
; You may not use the Program in non-TI devices.
NAME PWMDAC
;****************************************************************************
; PWM DAC Demonstratin Program
; Generate a 250Hz sine wave using PWM timer Timer_B.
;
; Description: This program demonstrates the usage of a PWM timer together
; with external filters to implement a DAC. The program shows how to
; create a 250Hz sine wave, a 125Hz ramp, and a DC level with Timer_B.
; Timer_A could also be used in the same manner. A sine table holds the
; sample values for the sinusoid. To create the ramp, the PWM value is
; simply incremented. The DC level is created by storing charge on an
; RC network using a PWM output to provide the charge. The value of the DC
; voltage directly corresponds to the duty cycele of the PWM signal. After
; initialization, the CPU is put into LPM0. It remains there until the
; CCIFG0 interrupt from Timer_B wakes it up. In the Timer_B ISR, the next
; value for the sinusoid is loaded into CCR1 and the ramp value is incremented
; and loded into CCR2. Upon return form the ISR, the CPU goes back into LPM0.
;
; Mike Mitchell
; MSP430 Applications
; Texas Instruments, Inc
; November, 2000
;
;****************************************************************************
#include "MSP430X14x.H" ; Include Standard Defs
Delta EQU 250 ; Delta = Target DCO/8192
; Target DCO frequency = 2.048MHz
; This value is used in the
; software FLL routine to
; calibrate the DCO frequency
; using the 32768Hz oscillator
; as a reference. For more
; information on stabilizing
; the DCO or the FLL routine
; see the application report
; titled "Controlling the DCO
; frequency of the MSP430x11x"
; Literature number SLAA074
;-----------------------------------------------------------------------------
RSEG CODE
;-----------------------------------------------------------------------------
Sine_Tab DW 255 ; Sine Table. These are the count
DW 254 ; values in decimal that will
DW 246 ; go into TBCCR1 to change the
DW 234 ; PWM duty cycle.
DW 219 ; Must use words instead of bytes
DW 199 ; because must move words into
DW 177 ; TB registers.
DW 153 ; Don't use a '0' as a sample value
DW 128 ; The timer will glitch.
DW 103
DW 79
DW 57
DW 37
DW 22
DW 10
DW 2
DW 1
DW 2
DW 10
DW 22
DW 37
DW 57
DW 79
DW 103
DW 128
DW 153
DW 177
DW 199
DW 219
DW 234
DW 246
DW 255
;----------------- Code Starts Here --------------------------------------
RESET mov #09FEh,SP ; Initialize stackpointer
StopWDT mov #WDTPW+WDTHOLD,&WDTCTL ; Stop WDT
SetupP4 bis.b #00Eh,&P4SEL ; Select TB1, TB2, TB3 instead of
bis.b #00Eh,&P4DIR ; P4.x, and set as outputs
SetupBC mov.b #0A6h,&BCSCTL1 ; ACLK is divided by 4. RSEL=6,
; no division for MCLK or SMCLK,
; DCO sources MCLK and SMCLK.
; XT2 is off.
; NOTE: To determine the value of
; Rsel for a desired DCO frequency,
; refer to the DCO table in the
; datasheet.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -