|
- #include "msp430g2553.h"
- #define MCLK 8000000
- #define OUTPUT_SAMPLES_PER_SECOND 8000
- #define PIN_SPEAKER BIT2
- unsigned long t = 0;
- unsigned char sample;
- void main(void) {
- WDTCTL = WDTPW + WDTHOLD;
-
- DCOCTL = CALDCO_8MHZ;
- BCSCTL1 = CALBC1_8MHZ;
- P1SEL |= PIN_SPEAKER;
- P1DIR |= PIN_SPEAKER;
- TA0CTL = TASSEL_2 | MC_1;
- TA0CCR0 = (0x0001 << 8) - 1;
- TA0CCTL1 |= OUTMOD_7;
- TA1CTL = TASSEL_2 | MC_1;
- TA1CCR0 = MCLK / OUTPUT_SAMPLES_PER_SECOND - 1;
- TA1CCTL0 |= CCIE;
- _enable_interrupts();
- while(1){
- sample = ((t<<1)^((t<<1)+(t>>7)&t>>12))|t>>(4-(1^7&(t>>19)))|t>>7;
- // sample = t*(((t>>12)|(t>>8))&(63&(t>>4)));
- // sample = (t*(t>>5|t>>8))>>(t>>16);
- // sample = t*(((t>>9)|(t>>13))&(25&(t>>6)));
- // sample = t*(((t>>11)&(t>>8))&(123&(t>>3)));
- // sample = (t*5&t>>7)|(t*3&t>>10);
- // sample = (t&t%255)-(t*3&t>>13&t>>6);
- // sample = t>>4|t&((t>>5)/(t>>7-(t>>15)&-t>>7-(t>>15)));
- // sample = (t*9&t>>4|t*5&t>>7|t*3&t/1024)-1;
- // sample = ((t*(t>>12)&(201*t/100)&(199*t/100))&(t*(t>>14)&(t*301/100)&(t*399/100)))+((t*(t>>16)&(t*202/100)&(t*198/100))-(t*(t>>17)&(t*302/100)&(t*298/100)));
- // sample = t*(t^t+(t>>15|1)^(t-1280^t)>>10);
- // sample = t&t>>8;
- //44 khz
- // sample = ((t/2*(15&(0x234568a0>>(t>>8&28))))|t/2>>(t>>11)^t>>12)+(t/16&t&24);
- // sample = ((t*("36364689"[t>>13&7]&15))/12&128)+(((((t>>12)^(t>>12)-2)%11*t)/4|t>>13)&127);
- t++;
- LPM0;
- }
- }
- #pragma vector = TIMER1_A0_VECTOR
- __interrupt void T1A0_ISR(void)
- {
- TA0CCR1 = sample;
- LPM0_EXIT;
- }
复制代码 w=t>>9,k=32,m=2048,a=1-t/m%1,d=(14*t*t^t)%m*a,y=[3,3,4.7,2][p=w/k&3]*t/4,h="IQNNNN!!]]!Q!IW]WQNN??!!W]WQNNN?".charCodeAt(w/2&15|p/3<<4)/33*t-t,s=y*.98%80+y%80+(w>>7&&a*((5*t%m*a&128)*(0x53232323>>w/4&1)+(d&127)*(0xa444c444>>w/4&1)*1.5+(d*w&1)+(h%k+h*1.99%k+h*.49%k+h*.97%k-64)*(4-a-a))),s*s>>14?127:s
这段代码复制进去 听声音好有感觉!
手头没有launchpad 不然真想试试
[ 本帖最后由 柠檬酸钠 于 2013-6-28 15:11 编辑 ] |
|