[an error occurred while processing this directive]
Ну на, лови, если поможет
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено -=Shura=- 13 января 2006 г. 10:49
В ответ на: Ответ: отправлено <font color=gray>H90</font> 13 января 2006 г. 10:40


#include "msp430x14x.h"

Data equ 0200h
Delta equ 625

;-----------------------------------------------------------------------------
ORG 01100h ; Program Start
SINTAB DW 0 ; 0 0 0.0000
DW 804 ; 1 1.41 0.0245
DW 1608 ; 2 2.81 0.0491
DW 2410 ; 3 4.22 0.0736
DW 3212 ; 4 5.63 0.0980
DW 4011 ; 5 7.03 0.1224
DW 4808 ; 6 8.44 0.1467
DW 5602 ; 7 9.84 0.1710
DW 6393 ; 8 11.25 0.1951
DW 7179 ; 9 12.66 0.2191
DW 7962 ; 10 14.06 0.2430
DW 8739 ; 11 15.47 0.2667
DW 9512 ; 12 16.88 0.2903
DW 10278 ; 13 18.28 0.3137
DW 11039 ; 14 19.69 0.3369
DW 11793 ; 15 21.09 0.3599
DW 12539 ; 16 22.50 0.3827
DW 13279 ; 17 23.91 0.4052
DW 14010 ; 18 25.31 0.4276
DW 14732 ; 19 26.72 0.4496
DW 15446 ; 20 28.13 0.4714
DW 16151 ; 21 29.53 0.4929
DW 16846 ; 22 30.94 0.5141
DW 17530 ; 23 32.34 0.5350
DW 18204 ; 24 33.75 0.5556
DW 18868 ; 25 35.16 0.5758
DW 19519 ; 26 36.56 0.5957
DW 20159 ; 27 37.97 0.6152
DW 20787 ; 28 39.38 0.6344
DW 21403 ; 29 40.78 0.6532
DW 22005 ; 30 42.19 0.6716
DW 22594 ; 31 43.59 0.6895
DW 23170 ; 32 45.00 0.7071
DW 23731 ; 33 46.41 0.7242
DW 24279 ; 34 47.81 0.7410
DW 24811 ; 35 49.22 0.7572
DW 25329 ; 36 50.63 0.7730
DW 25832 ; 37 52.03 0.7883
DW 26319 ; 38 53.44 0.8032
DW 26790 ; 39 54.84 0.8176
DW 27245 ; 40 56.25 0.8315
DW 27683 ; 41 57.66 0.8449
DW 28105 ; 42 59.06 0.8577
DW 28510 ; 43 60.47 0.8701
DW 28898 ; 44 61.88 0.8819
DW 29268 ; 45 63.28 0.8932
DW 29621 ; 46 64.69 0.9040
DW 29956 ; 47 66.09 0.9142
DW 30273 ; 48 67.50 0.9239
DW 30571 ; 49 68.91 0.9330
DW 30852 ; 50 70.31 0.9415
DW 31113 ; 51 71.72 0.9495
DW 31356 ; 52 73.13 0.9569
DW 31580 ; 53 74.53 0.9638
DW 31785 ; 54 75.94 0.9700
DW 31971 ; 55 77.34 0.9757
DW 32137 ; 56 78.75 0.9808
DW 32285 ; 57 80.16 0.9853
DW 32412 ; 58 81.56 0.9892
DW 32521 ; 59 82.97 0.9925
DW 32609 ; 60 84.38 0.9952
DW 32678 ; 61 85.78 0.9973
DW 32728 ; 62 87.19 0.9988
DW 32757 ; 63 88.59 0.9997
DW 32767 ; 64 90.00 1.0000
DW 32757 ; 65 91.41 0.9997
DW 32728 ; 66 92.81 0.9988
DW 32678 ; 67 94.22 0.9973
DW 32609 ; 68 95.63 0.9952
DW 32521 ; 69 97.03 0.9925
DW 32412 ; 70 98.44 0.9892
DW 32285 ; 71 99.84 0.9853
DW 32137 ; 72 101.25 0.9808
DW 31971 ; 73 102.66 0.9757
DW 31785 ; 74 104.06 0.9700
DW 31580 ; 75 105.47 0.9638
DW 31356 ; 76 106.88 0.9569
DW 31113 ; 77 108.28 0.9495
DW 30852 ; 78 109.69 0.9415
DW 30571 ; 79 111.09 0.9330
DW 30273 ; 80 112.50 0.9239
DW 29956 ; 81 113.91 0.9142
DW 29621 ; 82 115.31 0.9040
DW 29268 ; 83 116.72 0.8932
DW 28898 ; 84 118.13 0.8819
DW 28510 ; 85 119.53 0.8701
DW 28105 ; 86 120.94 0.8577
DW 27683 ; 87 122.34 0.8449
DW 27245 ; 88 123.75 0.8315
DW 26790 ; 89 125.16 0.8176
DW 26319 ; 90 126.56 0.8032
DW 25832 ; 91 127.97 0.7883
DW 25329 ; 92 129.38 0.7730
DW 24811 ; 93 130.78 0.7572
DW 24279 ; 94 132.19 0.7410
DW 23731 ; 95 133.59 0.7242
DW 23170 ; 96 135.00 0.7071
DW 22594 ; 97 136.41 0.6895
DW 22005 ; 98 137.81 0.6716
DW 21403 ; 99 139.22 0.6532
DW 20787 ; 100 140.63 0.6344
DW 20159 ; 101 142.03 0.6152
DW 19519 ; 102 143.44 0.5957
DW 18868 ; 103 144.84 0.5758
DW 18204 ; 104 146.25 0.5556
DW 17530 ; 105 147.66 0.5350
DW 16846 ; 106 149.06 0.5141
DW 16151 ; 107 150.47 0.4929
DW 15446 ; 108 151.88 0.4714
DW 14732 ; 109 153.28 0.4496
DW 14010 ; 110 154.69 0.4276
DW 13279 ; 111 156.09 0.4052
DW 12539 ; 112 157.50 0.3827
DW 11793 ; 113 158.91 0.3599
DW 11039 ; 114 160.31 0.3369
DW 10278 ; 115 161.72 0.3137
DW 9512 ; 116 163.13 0.2903
DW 8739 ; 117 164.53 0.2667
DW 7962 ; 118 165.94 0.2430
DW 7179 ; 119 167.34 0.2191
DW 6393 ; 120 168.75 0.1951
DW 5602 ; 121 170.16 0.1710
DW 4808 ; 122 171.56 0.1467
DW 4011 ; 123 172.97 0.1224
DW 3212 ; 124 174.38 0.0980
DW 2410 ; 125 175.78 0.0736
DW 1608 ; 126 177.19 0.0491
DW 804 ; 127 178.59 0.0245
DW 0 ; 128 180.00 0.0000
DW 64731 ; 129 181.41 -0.0245
DW 63927 ; 130 182.81 -0.0491
DW 63125 ; 131 184.22 -0.0736
DW 62323 ; 132 185.63 -0.0980
DW 61524 ; 133 187.03 -0.1224
DW 60727 ; 134 188.44 -0.1467
DW 59933 ; 135 189.84 -0.1710
DW 59142 ; 136 191.25 -0.1951
DW 58356 ; 137 192.66 -0.2191
DW 57573 ; 138 194.06 -0.2430
DW 56796 ; 139 195.47 -0.2667
DW 56023 ; 140 196.88 -0.2903
DW 55257 ; 141 198.28 -0.3137
DW 54496 ; 142 199.69 -0.3369
DW 53742 ; 143 201.09 -0.3599
DW 52996 ; 144 202.50 -0.3827
DW 52256 ; 145 203.91 -0.4052
DW 51525 ; 146 205.31 -0.4276
DW 50803 ; 147 206.72 -0.4496
DW 50089 ; 148 208.13 -0.4714
DW 49384 ; 149 209.53 -0.4929
DW 48689 ; 150 210.94 -0.5141
DW 48005 ; 151 212.34 -0.5350
DW 47331 ; 152 213.75 -0.5556
DW 46667 ; 153 215.16 -0.5758
DW 46016 ; 154 216.56 -0.5957
DW 45376 ; 155 217.97 -0.6152
DW 44748 ; 156 219.38 -0.6344
DW 44132 ; 157 220.78 -0.6532
DW 43530 ; 158 222.19 -0.6716
DW 42941 ; 159 223.59 -0.6895
DW 42365 ; 160 225.00 -0.7071
DW 41804 ; 161 226.41 -0.7242
DW 41256 ; 162 227.81 -0.7410
DW 40724 ; 163 229.22 -0.7572
DW 40206 ; 164 230.63 -0.7730
DW 39703 ; 165 232.03 -0.7883
DW 39216 ; 166 233.44 -0.8032
DW 38745 ; 167 234.84 -0.8176
DW 38290 ; 168 236.25 -0.8315
DW 37852 ; 169 237.66 -0.8449
DW 37430 ; 170 239.06 -0.8577
DW 37025 ; 171 240.47 -0.8701
DW 36637 ; 172 241.88 -0.8819
DW 36267 ; 173 243.28 -0.8932
DW 35914 ; 174 244.69 -0.9040
DW 35579 ; 175 246.09 -0.9142
DW 35262 ; 176 247.50 -0.9239
DW 34964 ; 177 248.91 -0.9330
DW 34683 ; 178 250.31 -0.9415
DW 34422 ; 179 251.72 -0.9495
DW 34179 ; 180 253.13 -0.9569
DW 33955 ; 181 254.53 -0.9638
DW 33750 ; 182 255.94 -0.9700
DW 33564 ; 183 257.34 -0.9757
DW 33398 ; 184 258.75 -0.9808
DW 33250 ; 185 260.16 -0.9853
DW 33123 ; 186 261.56 -0.9892
DW 33014 ; 187 262.97 -0.9925
DW 32926 ; 188 264.38 -0.9952
DW 32857 ; 189 265.78 -0.9973
DW 32807 ; 190 267.19 -0.9988
DW 32778 ; 191 268.59 -0.9997
DW 32768 ; 192 270.00 -1.0000
DW 32778 ; 193 271.41 -0.9997
DW 32807 ; 194 272.81 -0.9988
DW 32857 ; 195 274.22 -0.9973
DW 32926 ; 196 275.63 -0.9952
DW 33014 ; 197 277.03 -0.9925
DW 33123 ; 198 278.44 -0.9892
DW 33250 ; 199 279.84 -0.9853
DW 33398 ; 200 281.25 -0.9808
DW 33564 ; 201 282.66 -0.9757
DW 33750 ; 202 284.06 -0.9700
DW 33955 ; 203 285.47 -0.9638
DW 34179 ; 204 286.88 -0.9569
DW 34422 ; 205 288.28 -0.9495
DW 34683 ; 206 289.69 -0.9415
DW 34964 ; 207 291.09 -0.9330
DW 35262 ; 208 292.50 -0.9239
DW 35579 ; 209 293.91 -0.9142
DW 35914 ; 210 295.31 -0.9040
DW 36267 ; 211 296.72 -0.8932
DW 36637 ; 212 298.13 -0.8819
DW 37025 ; 213 299.53 -0.8701
DW 37430 ; 214 300.94 -0.8577
DW 37852 ; 215 302.34 -0.8449
DW 38290 ; 216 303.75 -0.8315
DW 38745 ; 217 305.16 -0.8176
DW 39216 ; 218 306.56 -0.8032
DW 39703 ; 219 307.97 -0.7883
DW 40206 ; 220 309.38 -0.7730
DW 40724 ; 221 310.78 -0.7572
DW 41256 ; 222 312.19 -0.7410
DW 41804 ; 223 313.59 -0.7242
DW 42365 ; 224 315.00 -0.7071
DW 42941 ; 225 316.41 -0.6895
DW 43530 ; 226 317.81 -0.6716
DW 44132 ; 227 319.22 -0.6532
DW 44748 ; 228 320.63 -0.6344
DW 45376 ; 229 322.03 -0.6152
DW 46016 ; 230 323.44 -0.5957
DW 46667 ; 231 324.84 -0.5758
DW 47331 ; 232 326.25 -0.5556
DW 48005 ; 233 327.66 -0.5350
DW 48689 ; 234 329.06 -0.5141
DW 49384 ; 235 330.47 -0.4929
DW 50089 ; 236 331.88 -0.4714
DW 50803 ; 237 333.28 -0.4496
DW 51525 ; 238 334.69 -0.4276
DW 52256 ; 239 336.09 -0.4052
DW 52996 ; 240 337.50 -0.3827
DW 53742 ; 241 338.91 -0.3599
DW 54496 ; 242 340.31 -0.3369
DW 55257 ; 243 341.72 -0.3137
DW 56023 ; 244 343.13 -0.2903
DW 56796 ; 245 344.53 -0.2667
DW 57573 ; 246 345.94 -0.2430
DW 58356 ; 247 347.34 -0.2191
DW 59142 ; 248 348.75 -0.1951
DW 59933 ; 249 350.16 -0.1710
DW 60727 ; 250 351.56 -0.1467
DW 61524 ; 251 352.97 -0.1224
DW 62323 ; 252 354.38 -0.0980
DW 63125 ; 253 355.78 -0.0736
DW 63927 ; 254 357.19 -0.0491
DW 64731 ; 255 358.59 -0.0245

;-----------------------------------------------------------------------------
RESET mov.w #0A00h,SP ; Initialize 'F149 stackpointer
call #Init_Sys ; Initialize system
clr &Data
mov #07fffh,&Data ;
clr R4
Mainloop incd R4 ; Increment Date value
cmp #512,R4
jne Cont
clr R4
Cont
mov SINTAB(R4),&Data
; inv &Data
call #TX_HC164 ; Data --> HC164
; call #Delay ; Wait
eint
jmp Mainloop ; Repeat
;
;-----------------------------------------------------------------------------
TX_HC164; SPI Data --> HC164
;-----------------------------------------------------------------------------
TX0 ;bit.b #TXEPT,&UTCTL0 ; USART0 TX buffer ready?
bit.b #UTXIFG1,&IFG1
jnz TX0 ; Jump --> TX buffer not ready
bic.b #010b,P1OUT
mov.b &Data+1,&TXBUF0 ; MSByte to SPI TXBUF
TX00 bit.b #UTXIFG1,&IFG1 ; USART0 TX buffer ready?
jnz TX00 ; Jump --> TX buffer not ready
mov.b &Data,&TXBUF0 ; LSByte to SPI TXBUF

TX01 ; bit.b #TXEPT,&UTCTL0 ; USART0 TX buffer ready?
bit.b #UTXIFG1,&IFG1
jnz TX01 ; Jump --> TX buffer not ready
bis.b #010b,P1OUT
mov.b &Data+1,&TXBUF0 ; MSByte to SPI TXBUF
TX02 bit.b #UTXIFG1,&IFG1 ; USART0 TX buffer ready?
jnz TX02 ; Jump --> TX buffer not ready
mov.b &Data,&TXBUF0 ; LSByte to SPI TXBUF

ret ; Return from subroutine
;
;-----------------------------------------------------------------------------
Delay; Software delay
;-----------------------------------------------------------------------------
push.w #0FFh ; Delay to TOS
L1 dec.w 0(SP) ; Decrement TOS
jnz L1 ; Delay over?
incd.w SP ; Clean TOS
ret ;
;
;-----------------------------------------------------------------------------
Init_Sys; Subroutine to Initialize MSP430F149 Peripherials
;-----------------------------------------------------------------------------
StopWDT mov.w #WDTPW+WDTHOLD,&WDTCTL ; Stop watchdog timer
mov.b #087h,&BCSCTL1
MOV.B #0E0h,&DCOCTL
SetupP3 bis.b #0Ah,&P3SEL ; P3.1,3 SPI option select
bis.b #0Ah,&P3DIR ; P3.1,3 output direction
SetupSPI bis.b #040h,&ME1 ; Enable USART0 SPI
bis.b #CKPH+SSEL1+SSEL0+STC,&UTCTL0 ;* SMCLK, 3-pin mode
mov.b #CHAR+SYNC+MM,&UCTL0 ; 8-bit SPI Master **SWRST**
mov.b #02h,&UBR00 ; SMCLK/2 for baud rate
clr.b &UBR10 ;
clr.b &UMCTL0 ; Clear modulation
bis.b #010b,&P1DIR
SetupTA mov.w #TASSEL0+TASSEL1+TACLR,&TACTL ; INCLK, Clear TAR
mov.w #OUTMOD2,&TACCTL0 ; Toggle @ P1.1

mov #15,&CCR0
bis.b #010b,P2SEL ; P2.1 INCLK
bis.b #010b,P1SEL ; P1.1 OUT
bis.b #010b,P1DIR
;mov #6,&TAR
bis #MC0,&TACTL ; Start Up Mode
ret ; Return from subroutine
;

;-----------------------------------------------------------------------------
; Interrupt Vectors Used MSP430x13x/14x
;-----------------------------------------------------------------------------
ORG 0FFFEh ; POR, ext. Reset, Watchdog, Flash
DW RESET ;
; ORG 0FFECh ; Timer_A0 Vector
; DW TA0_ISR ;
END


Выводит синус.
Насчёт WAV вопрос неоднозначный, т.к. у wav-файла могут быть совершенно разные форматы

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru