[STM32F0] M0生成正弦波,波形很差怎么办?

[复制链接]
6370|48
 楼主| yjmwxwx 发表于 2017-2-20 11:19 | 显示全部楼层
xyz549040622 发表于 2017-2-19 23:09
感觉是你算法的问题。

-恩 是算法有问题
 楼主| yjmwxwx 发表于 2017-2-20 11:21 | 显示全部楼层
icecut 发表于 2017-2-19 23:04
还是用更快的 mcu 吧

我不是专业的就是普通爱好者,闲着没事玩玩,经济条件比较差只能玩便宜的。
whtwhtw 发表于 2017-2-20 11:33 来自手机 | 显示全部楼层
产生正玄波用PWM好还是用DAC好?
icecut 发表于 2017-2-20 11:55 | 显示全部楼层
whtwhtw 发表于 2017-2-20 11:33
产生正玄波用PWM好还是用DAC好?

一样.
598330983 发表于 2017-2-20 19:26 | 显示全部楼层
要不你先定义个256的数组,试试8BIT的分配方案,直接从数组定时读取到DAC。
zjh2009 发表于 2017-2-20 20:47 | 显示全部楼层
我用DAC的DMA通道输入数据,事先计算好100个采样点的数据。波形很好。没有问题。用的是T6区触发。你可以到这里下载一下测试程序。
http://www.stmcu.org/module/forum/thread-610391-1-1.html
不过我的是F4的。不知道对你的有没有作用
 楼主| yjmwxwx 发表于 2017-2-21 12:09 | 显示全部楼层
zjh2009 发表于 2017-2-20 20:47
我用DAC的DMA通道输入数据,事先计算好100个采样点的数据。波形很好。没有问题。用的是T6区触发。你可以到 ...

谢谢

你这个做的不错啊,但是我没用过库啊。。。
 楼主| yjmwxwx 发表于 2017-2-21 12:11 | 显示全部楼层
598330983 发表于 2017-2-20 19:26
要不你先定义个256的数组,试试8BIT的分配方案,直接从数组定时读取到DAC。

现在我原理不懂啊。。 一个固定的数组用一个定时器怎么改变频率啊?
 楼主| yjmwxwx 发表于 2017-2-21 12:29 | 显示全部楼层


我又瞎编了一下,这次一边计算一边查表,计算后的表放到内存,把整整一个周期都放进去,但是我才注意到我的内存就4K。。。  地址就0到0X1000 ,现在把0X324后面全当做表。

定时器ARR里面放30到800  , 一个函数里ARR加减1循环,每改加1或者减1重新计算正弦表。

最大幅度和ARR一样,  ARR30的时候最大幅度30,每个周期60个点。 ARR800的时候,1600个点,最大幅度800 。

发现有鬼影啊。。  扫频很慢啊,看样子闭门造车不行啊

598330983 发表于 2017-2-21 21:04 | 显示全部楼层
真是闭门造车。。
598330983 发表于 2017-2-21 21:06 | 显示全部楼层
给你找了个例程 产生正弦信号.rar (36.52 KB, 下载次数: 4)



598330983 发表于 2017-2-21 21:10 | 显示全部楼层
多给你几个。
DA(已完成).zip (2.05 MB, 下载次数: 4)



 楼主| yjmwxwx 发表于 2017-2-21 22:07 | 显示全部楼层
maqianqu 发表于 2017-2-21 22:56 | 显示全部楼层
怎么还有延时误差?
maqianqu 发表于 2017-2-21 23:01 | 显示全部楼层
查看正弦波的算法是不是连续
 楼主| yjmwxwx 发表于 2017-2-22 15:55 | 显示全部楼层
maqianqu 发表于 2017-2-21 23:01
查看正弦波的算法是不是连续

算出来放到内存里一个表,然后DMA查表更新定时器。

不知道哪里设置的不对, 每次改变频率都会抖动一下,变的越快抖的越厉害,难道是相位不同,线上有电容?

 楼主| yjmwxwx 发表于 2017-2-22 16:08 | 显示全部楼层
有没有STM32F030F4P6 正弦波扫频的固件刷进去看看?  

目前只看懂了别人程序里的 (int)(offset + amplitude*sin((phase+i)*2*3.1415927/entries_2PI)))
就这一行我至少写了上百行才实现。。。


现在生成的表能和别的软件生成的对应起来了,就是改一次频率抖一下,改的慢不抖,改的快抖的厉害。。



 楼主| yjmwxwx 发表于 2017-2-22 16:16 | 显示全部楼层
本帖最后由 yjmwxwx 于 2017-2-22 16:21 编辑

闭门造车没成功,改了几百次重写好几次还是失败啦。。  居然一直出鬼影,一直抖动。。 放弃啦。。。。

下面这个程序PB1输出

chengxu.zip (5.95 KB, 下载次数: 2)







  1. [url=home.php?mod=space&uid=72445]@[/url] stm32f030f4p6 asm
  2.          .thumb                 
  3.          .syntax unified
  4. .section .data        
  5.                .equ STACKINIT,                 0x20000300
  6.         .equ shumaguanma,               0x20000304
  7.         .equ zhengxianzengjian,         0x20000308
  8.         .equ zhengxianzhengfu,          0x2000030c
  9.         .equ zhengxian90,               0x20000310
  10.         .equ zhengxian25734chu,         0x20000314
  11.         .equ zhengxianfudu,             0x20000318
  12.         .equ zhengxianfudupianyi,       0x2000031c
  13.         .equ zhengxiandianshu,          0x20000320
  14.         .equ zhengxianbiaozhizhen,      0x2000034c
  15.         .equ zhengxianbiao,             0x20000350
  16. shumaguanmabiao:        .int 0xfc,0x50,0xea,0xf2,0x56,0xb6,0xbe,0xd0,0xfe,0xfa
  17.         
  18.         
  19.         

  20.         .align 4
  21. cordicbiao:
  22.         .int 0x00003243, 0x00001DAC, 0x00000FAD, 0x000007F5, 0x000003FE, 0x000001FF, 0x000000FF, 0x0000007F, 0x0000003F, 0x0000001F, 0x0000000F, 0x00000007, 0x00000003, 0x00000001, 0x00000000, 0x0000000

  23.         
  24.         
  25. .section .text
  26. vectors:        
  27.         .word STACKINIT         
  28.         .word _start + 1        
  29.         .word _nmi_handler + 1  
  30.         .word _hard_fault  + 1  
  31.         .word 0
  32.         .word 0   
  33.         .word 0
  34.         .word 0
  35.         .word 0
  36.         .word 0
  37.         .word 0
  38.         .word _svc_handler +1
  39.         .word 0
  40.         .word 0
  41.         .word _pendsv_handler +1
  42.         .word _systick +1               [url=home.php?mod=space&uid=72445]@[/url] 15   
  43.         .word 0     @ _wwdg +1          @ 0
  44.         .word 0     @_pvd +1            @ 1
  45.         .word 0     @_rtc +1            @ 2
  46.         .word 0     @_flash +1          @ 3
  47.         .word 0     @ _rcc + 1          @ 4
  48.         .word 0      @_exti0_1  +1      @ 5
  49.         .word 0      @ _exti2_3 +1      @ 6
  50.         .word 0       @_exti4_15 +1     @ 7
  51.         .word 0                         @ 8
  52.         .word 0         @_dma1_1  +1    @ 9
  53.         .word 0    @_dma1_2_3 +1        @ 10
  54.         .word 0       @_dma1_4_5 +1     @ 11
  55.         .word 0      @_adc1 +1          @ 12
  56.         .word 0       @_tim1_brk_up +1  @ 13
  57.         .word 0        @ _tim1_cc +1    @ 14
  58.         .word 0         @_tim2 +1       @ 15
  59.         .word 0          @_tim3 +1      @ 16
  60.         .word 0                         @ 17
  61.         .word 0                                @ 18
  62.         .word _tim14 +1    @ 19
  63.         .word 0                         @ 20
  64.         .word 0         @_tim16 +1      @ 21
  65.         .word 0         @_tim17 +1      @ 22
  66.         .word 0          @_i2c   +1     @ 23
  67.         .word 0                         @ 24
  68.         .word 0           @_spi   +1    @ 25
  69.         .word 0                         @ 26
  70.         .word 0         @_usart1 +1     @ 27
  71.         
  72. _start:
  73. shizhong:
  74.         ldr r0, = 0x40021000 @ rcc
  75.         ldr r2, = 0x40022000   @FLASH访问控制
  76.         movs r1, # 0x32
  77.         str r1, [r2]           @FLASH缓冲 缓冲开启
  78.         ldr r1, = 0x1d0002     @HSE-PLL 6
  79.         str r1, [r0, # 0x04]
  80.         ldr r1, = 0x1090001
  81.         str r1, [r0]
  82. dengrc:
  83.         ldr r1, [r0]
  84.         lsls r1, # 30
  85.         bpl dengrc
  86. dengjingzhen:
  87.         ldr r1, [r0]
  88.         lsls r1, # 14
  89.         bpl dengjingzhen
  90. dengpll:
  91.         ldr r1, [r0]
  92.         lsls r1, # 6
  93.         bpl dengpll
  94.         @0x34时钟控制寄存器 2 (RCC_CR2)
  95.         movs r1, # 0x01
  96.         str r1, [r0, # 0x34]  @ HSI开14M时钟
  97. dengdai14mshizhongwending:
  98.         ldr r1, [r0, # 0x34]
  99.         lsls r1, r1, # 30     @ 左移30位
  100.         bpl dengdai14mshizhongwending  @ 等待14M时钟稳定

  101. neicunqingling:
  102.         ldr r0, = 0x20000000
  103.         movs r1, # 0
  104.         ldr r3, = 0x1000
  105. neicunqinglingxunhuan:
  106.         subs r3, # 4
  107.         str r1, [r0, r3]
  108.         bne neicunqinglingxunhuan
  109. waisheshizhong:         @ 外设时钟              
  110.         @+0x14 #0(DMA),2(SRAM),4(FLITF),6(CRC),17(PA)
  111.         @18(PB),19(PC),20(PD),22(PF)
  112.         @+0x18 #0(SYSCFG),5(USART6),9(ADC),#11(TIM1)
  113.         @12(SPI), @14(USART1),16(TIM15),17(TIM16),
  114.         @18(TIM17),22(DBGMCU)
  115.         @+0X1C # 1(TIM3),4(TIM6),5(TIM7),8(TIM14),11(WWDG),
  116.         @14(SPI2),17(USART2),18(USART3),19(USART4),20(USART5)
  117.         @21(I2C1),22(I2C2),23(USB),28(PWR)
  118.         ldr r0, = 0x40021000
  119.         ldr r1, = 0x60005
  120.         str r1, [r0, # 0x14]
  121.         ldr r1, = 0x100
  122.         str r1, [r0, # 0x1c]
  123.         ldr r1, = 0x800
  124.         str r1, [r0, # 0x18]

  125. waishezhongduan:        @外设中断
  126.         @0xE000E100    0-31 写1开,写0没效
  127.         @0XE000E180    0-31 写1关,写0没效
  128.         @0XE000E200    0-31 挂起,写0没效
  129.         @0XE000E280    0-31 清除, 写0没效
  130. systick:
  131.         @ 0xe000ed20 30-31 优先级
  132.         ldr r0, = 0xe000e010
  133.         ldr r1, = 47999 @ 重载数
  134.         str r1, [r0, # 4] @ 写入重载数
  135.         str r1, [r0, # 8] @ 清除当前数
  136.         movs r1, # 0
  137.         str r1, [r0] @ 开定时器

  138. dmachushihua:
  139.         @+0=LSR,+4=IFCR,
  140.         @+8=CCR1,+c=CNDTR1,+10=CPAR1+14=CMAR1,
  141.         @+1c=CCR2,+20=CNDTR2,+24=CPAR2,+28=CMAR2
  142.         @+30=CCR3,+34=CNDTR3,+38=CPAR2,+3c=CMAR3
  143.         @+44=CCR4,+48=CNDTR4,+4c=CPAR4,+50=CMAR4
  144.         @+58=CCR5,+5c=CNDTR5,+60=CPAR5,+64=CMAR5
  145.         @+6C=CCR6,+70=CNDTR6,+74=CPAR6,+78=CMAR6
  146.         @+80=CCR7,+84=CNDTR7,+88=CPAR7,+8c=CMAR7
  147.         ldr r0, = 0x40020000
  148.         ldr r1, = 0x40012c3c @ 外设地址
  149.         str r1, [r0, # 0x60]
  150.         ldr r1, = zhengxianbiao @ 储存器地址
  151.         str r1, [r0, # 0x64]
  152.         ldr r1, = 200        
  153.         str r1, [r0, # 0x5c]
  154.         ldr r1, = 0x25b1         @ 储存到外设
  155.         str r1, [r0, # 0x58]

  156. tim1chushiha:
  157.         ldr r0, = 0x40012c00 @ tim1_cr1
  158.         movs r1, # 0
  159.         str r1, [r0, # 0x28] @ psc
  160.         ldr r1, = 100
  161.         str r1, [r0, # 0x2c] @ ARR
  162.         ldr r1, = 0x60
  163.         str r1, [r0, # 0x1c] @ ccmr2  CC3
  164.         ldr r1, = 0xd00    @  CC3 互补
  165.         str r1, [r0, # 0x20] @ ccer
  166.         ldr r1, = 0x8000
  167.         str r1, [r0, # 0x44] @ BDTR
  168.         ldr r1, = 0x800 @ CC3 DMA
  169.         str r1, [r0, # 0x0c] @ DIER
  170.         ldr r1, = 1
  171.         str r1, [r0]
  172.         

  173.         
  174. io_she_zhi:
  175. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  176.         @a(0x48000000)b(0x48000400)c(0x48000800)d(0x48000c00)f(0x48001400)
  177.         @ 输入(00),通用输出(01),复用功能(10),模拟(11)
  178.         @偏移0x4 = 端口输出类型 @ (0 推挽),( 1 开漏)
  179.         @偏移0x8 = 输出速度  00低速, 01中速, 11高速
  180.         @偏移0xC = 上拉下拉 00无上下拉,  01 上拉, 10下拉
  181.         @偏移0x10 = 输入数据寄存器
  182.         @偏移0x14 = 输出数据寄存器
  183.         @偏移0x18 = 端口开  0-15置位
  184.         @偏移0x28 = 端口关
  185.         @0X20 = 复用低
  186.         @GPIO口0(0-3位)每个IO口占用4位
  187.         @ AF0 = 0X0000, AF1 = 0X0001, AF2 = 0X0010 AF3 = 0X0011, AF4 = 0X0100
  188.         @ AF5 = 0X0101, AF6 = 0X0111, AF7 = 0X1000
  189.         @0x24 = 复用高
  190.         @GPIO口8 (0-3位)每个IO口占用4位
  191.         @ AF0 = 0X0000, AF1 = 0X0001, AF2 = 0X0010 AF3 = 0X0011, AF4 = 0X0100
  192.         @ AF5 = 0X0101, AF6 = 0X0111, AF7 = 0X1000
  193. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  194.         ldr r0, = 0x48000000 @ gpio_a
  195.         ldr r1, = 0x28205600 @ pa4
  196.         str r1, [r0]
  197.         ldr r1, [r0, # 0x08]
  198.         ldr r2, = 0xfc00
  199.         orrs r1, r2
  200.         str r1, [r0, # 0x08]
  201.         ldr r1, = 0x40000 @ tim14映射到PA4
  202.         str r1, [r0, # 0x20] @ ARRL
  203.         ldr r1, = 0x200     @ tim1_ch3到PA10
  204.         str r1, [r0, # 0x24] @ ARRH
  205.         ldr r0, = 0x48000400
  206.         movs r1, # 0x08 @ pb1
  207.         str r1, [r0]
  208.         movs r1, # 0x0C
  209.         str r1, [r0, # 0x08]
  210.         movs r1, # 0x20 @ tim1_ch3n到PB1
  211.         str r1, [r0, # 0x20] @ ARRL



  212.         ldr r0, = 500         @点数
  213.         ldr r1, = 50          @ 最大幅度
  214.         
  215. zxspjia:        
  216.         bl _zhengxianchushihua
  217.         ldr r7, = 0x5555
  218. zxspyanshi:
  219.         bl _suanzhengxianbiao
  220.         subs r7, # 1
  221.         bne zxspyanshi
  222.         adds r1, # 1
  223.         cmp r1, r0
  224.         bne zxspjia
  225. zxspjian:        
  226.         bl _zhengxianchushihua
  227.         ldr r7, = 0x5555
  228. zxspyanshi1:
  229.         bl _suanzhengxianbiao
  230.         subs r7, # 1
  231.         bne zxspyanshi1
  232.         subs r1, # 1
  233.         cmp r1, # 50
  234.         bne zxspjian
  235.         b zxspjia

  236.         
  237. tingting:
  238.         b tingting




  239.         

  240. _suanzhengxianbiao:
  241.         push {r0,r1,lr}
  242.         ldr r0, = zhengxiandianshu
  243.         ldr r1, [r0]
  244.         cmp r1, # 0
  245.         beq _suanzhengxianbiaofanhui
  246.         bl _suanzhengxian
  247. _suanzhengxianbiaofanhui:
  248.         pop {r0,r1,pc}
  249.         

  250.         

  251.         
  252. _suanzhengxian:
  253.         push {r0-r7,lr}
  254.         ldr r7, = zhengxian90
  255.         ldr r6, [r7]    @ 正90度
  256.         movs r4, # 0
  257.         subs r4, r6     @ 负90度

  258.         ldr r2, = zhengxianzengjian
  259.         ldr r3, [r2]
  260.         ldr r5, = zhengxianzhengfu     @正弦正负标志
  261.         ldr r1, [r5]
  262.         cmp r1, # 0         @ 0 = 加, 1 = 减
  263.         bne _zhengxianjian
  264. _zhengxianjia:
  265.         adds r3, # 1
  266.         str r3, [r2]
  267.         cmp r3, r6
  268.         bne _zhengxianfanhui
  269.         movs r1, # 1
  270.         str r1, [r5]
  271.         b _zhengxianfanhui

  272. _zhengxianjian:
  273.         subs r3, # 1
  274.         str r3, [r2]
  275.         cmp r3, r4
  276.         bne _zhengxianfanhui
  277.         movs r1, # 0
  278.         str r1, [r5]
  279. _zhengxianfanhui:
  280.         ldr r6, = zhengxian25734chu
  281.         ldr r6, [r6]
  282.         muls r3, r6

  283.         
  284.         mov r0, r3
  285.         bl cordic
  286.         mov r3, r12
  287.         ldr r1, = 100000
  288.         muls r3, r1
  289.         asrs r3, # 14
  290.         ldr r6, = zhengxianfudu
  291.         ldr r6, [r6]
  292.         muls r3, r6

  293.         movs r3, r3
  294.         bpl _zhengxianbushifushu     @不是负数
  295.         mvns r3, r3
  296.         adds r3, # 1
  297.         mov r12, r3
  298.         mov r11, r1
  299.         bl chufa
  300.         mov r3, r12
  301.         mvns r3, r3
  302.         adds r3, # 1
  303.         b _zhengxianfanhui1
  304.         
  305. _zhengxianbushifushu:
  306.         mov r12, r3
  307.         mov r11, r1
  308.         bl chufa
  309.         mov r3, r12

  310. _zhengxianfanhui1:

  311.         ldr r6, = zhengxianfudupianyi
  312.         ldr r6, [r6]
  313.         adds r3, r6
  314.         
  315.         ldr r0, = zhengxianbiaozhizhen
  316.         ldr r1, = zhengxianbiao
  317.         ldr r2, [r0]
  318.         strh r3, [r1, r2]
  319.         adds r2, # 2
  320.         str r2, [r0]

  321.         ldr r0, = zhengxiandianshu
  322.         ldr r1, [r0]
  323.         subs r1, # 1
  324.         str r1, [r0]
  325.         pop {r0-r7,pc}
  326.         







  327. _zhengxianchushihua:
  328.         @ r0 = 0到90度多少个点, r1 = 正弦波幅度和偏移
  329.         push {r0-r7,lr}
  330.         lsrs r0, # 2
  331.         ldr r7, = 25734
  332.         ldr r6, = zhengxian90
  333.         str r0, [r6]
  334.         mov r12, r7
  335.         mov r11, r0
  336.         bl chufa
  337.         mov r4, r12
  338.         ldr r5, = zhengxian25734chu
  339.         str r4, [r5]
  340.         ldr r5, = zhengxiandianshu
  341.         lsls r0, # 2
  342.         str r0, [r5]
  343.         ldr r5, = 0x40020000   @ dma
  344.         ldr r2, [r5, # 0x58]
  345.         movs r3, # 0
  346.         str r3, [r5, # 0x58]
  347.         str r0, [r5, # 0x5c]
  348.         str r2, [r5, # 0x58]
  349.         ldr r5, = 0x40012c00
  350.         str r3, [r5, # 0x24]
  351.         lsls r0, r1, # 1
  352.         str r0, [r5, # 0x2c]
  353.         ldr r5, = zhengxianfudu
  354.         str r1, [r5]
  355.         ldr r5, = zhengxianfudupianyi
  356.         str r1, [r5]
  357.         ldr r5, = zhengxianzengjian
  358.         movs r4, # 0
  359.         str r4, [r5]
  360.         ldr r5, = zhengxianzhengfu
  361.         str r4, [r5]
  362.         ldr r5, = zhengxianbiaozhizhen
  363.         str r4, [r5]
  364.         
  365.         pop {r0-r7,pc}

  366.         



  367.         
  368.         
  369.         
  370.         

  371. cordic:         @ 入 R0 , 出R12

  372.         @ 16384 * 3.1415927/2  =25734
  373.         @ x= 0x26dd
  374.         @ r1=x,r2=y,r0=z,r4=d,r5=k,r6=cordic_mabiao

  375.         push {r0-r7,lr}
  376.         movs r5, # 0
  377.         mov r2, r5
  378.         mov r4, r5
  379.         ldr r1, = 0x26dd
  380. cordicxunhuan:         @ 循环
  381.         asrs r4, r0, # 15
  382.         @ x
  383.         mov r7, r2
  384.         asrs r2, r5
  385.         eors r2, r4
  386.         subs r2, r4
  387.         subs r3, r1, r2
  388.         @ y
  389.         mov r6, r1
  390.         asrs r1, r5
  391.         eors r1, r4
  392.         subs r1, r4
  393.         adds r7, r1
  394.         @ z
  395.         ldr r6, = cordicbiao
  396.         lsls r2, r5, # 2
  397.         ldr r1, [r6, r2]
  398.         eors r1, r4
  399.         subs r1, r4
  400.         subs r0, r1
  401.         mov r12, r7 @ 正弦
  402.         mov r1, r3  @
  403.         mov r2, r7
  404.         adds r5, # 1
  405.         cmp r5, # 16
  406.         bne cordicxunhuan
  407.         pop {r0-r7,pc}

  408.         

  409.         

  410.         zhuanshumaguanma:@ 16进制转数码管码
  411.                 @ R0要转的数据, R1长度,R2结果表首地址
  412.         push {r0-r7,lr}
  413.         ldr r7, = shumaguanmabiao
  414.         movs r5, # 10
  415.         mov r11, r5
  416. xunhuanqiuma:
  417.         mov r12, r0
  418.         bl chufa
  419.         mov r4, r12
  420.         muls r4, r5
  421.         mov r6, r4
  422.         subs r3, r0, r6
  423.         lsls r3, # 2
  424.         ldr r6, [r7, r3]
  425.         str r6, [r2]
  426.         adds r2, r2, # 4
  427.         mov r0, r12
  428.         subs r1, # 1
  429.         bne xunhuanqiuma
  430.         pop {r0-r7,pc}
  431.         
  432. xieshumaguan: @ r6=位数 @数码管码
  433.         push {r0-r7,lr}
  434.         ldr r1, = 0x7f7f7f7f
  435.         movs r2, # 0x01
  436.         movs r7, # 0
  437.         ldr r5, = shumaguanma
  438. shumaguanshuaxin:
  439.         ldr r3, [r5, r7]
  440.         lsrs r4, r1, # 24
  441.         lsls r4, r4, # 8
  442.         orrs r4, r4, r3
  443.         mov r12, r4
  444.         bl xie595
  445.         rors r1, r2
  446.         adds  r7, r7, # 4
  447.         cmp r7, r6
  448.         bcc shumaguanshuaxin
  449.         pop {r0-r7,pc}
  450.         
  451. xie595: @ R12=要写的数据
  452.         push {r0-r7,lr}
  453.         movs r0, # 0x40
  454.         movs r7, # 0x80
  455.         movs r6, # 0x20
  456.         mov r5, r12
  457.         movs r3, # 16   @16位
  458.         ldr r2, = 0x48000000 @ gpioa
  459.         movs r1, # 0x01
  460. xunhuan595:
  461.         str r6, [r2, # 0x18]
  462.         bl yanshi
  463.         tst r5, r1
  464.         bne xie595_0
  465.         str r7, [r2, # 0x28]
  466.         b suocun595
  467. xie595_0:
  468.         str r7, [r2, # 0x18]
  469. suocun595:
  470.         bl yanshi
  471.         lsrs r5, # 1
  472.         str r6, [r2, # 0x28]
  473.         bl yanshi
  474.         subs r3, r3, # 1
  475.         bne xunhuan595
  476.         str r0, [r2, # 0x18]
  477.         bl yanshi
  478.         str r0, [r2, # 0x28]
  479.         bl yanshi
  480.         pop {r0-r7,pc}

  481. yanshi:
  482.         push {r0-r7,lr}
  483.         ldr r0, = 10
  484. yanshi1:
  485.         subs r0, # 1
  486.         bne yanshi1
  487.         pop {r0-r7,pc}
  488.         
  489. chufa:        @软件除法
  490.         @ r12 除以 R11
  491.         push {r0-r7,lr}
  492.         mov r6, r12
  493.         cmp r6, # 0
  494.         beq chufafanhui
  495.         mov r7, r11
  496.         cmp r7, # 0
  497.         beq chufafanhui
  498.         movs r0, # 0
  499. chufaxunhuan:
  500.         mov r12, r6
  501.         bl jianceweishu
  502.         mov r2, r12
  503.         mov r12, r7
  504.         bl jianceweishu
  505.         mov r3, r12
  506.         subs r2, r3, r2
  507.         mov r4, r7
  508.         lsls r4, r2
  509.         mov r3, r4
  510.         cmp r6, r3
  511.         bcc dd1
  512.         b dd2
  513. dd1:
  514.         subs r2, r2, # 1
  515.         lsrs r3, # 1
  516. dd2:
  517.         subs r6, r6, r3
  518.         movs r3, # 1
  519.         lsls r3, r2
  520.         orrs  r0, r3
  521.         cmp r6, r7
  522.         bcs chufaxunhuan
  523.         mov r12, r0
  524. chufafanhui:
  525.         pop {r0-r7,pc}

  526. jianceweishu:
  527.         push {r0-r7,lr}
  528.         movs r0, # 0
  529.         mov r1, r12
  530. jianceweishu1:
  531.         movs r1, r1
  532.         bmi weishufanhui
  533.         adds r0, r0, # 1
  534.         lsls r1, # 1
  535.         b jianceweishu1
  536. weishufanhui:
  537.         mov r12, r0
  538.         pop {r0-r7,pc}

  539. _nmi_handler:
  540.         bx lr
  541. _hard_fault:
  542.         bx lr
  543. _svc_handler:
  544.         bx lr
  545. _pendsv_handler:
  546.         bx lr
  547. _systick:
  548.         bx lr
  549. _tim14:
  550. tim14ting:
  551.         bx lr


zjh2009 发表于 2017-2-22 21:27 | 显示全部楼层
yjmwxwx 发表于 2017-2-22 16:08
有没有STM32F030F4P6 正弦波扫频的固件刷进去看看?  

目前只看懂了别人程序里的 (int)(offset + amplitud ...

别当真,这是你示波器的问题
zjh2009 发表于 2017-2-22 21:29 | 显示全部楼层
我觉得是示波器的问题。为了证明这个你的波形在变化时,调整示波器去的范围。让它能包裹几个周期的波形,然后再看看还有没有鬼影
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部