|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 岁月如歌21 于 2025-8-16 10:00 编辑
/ q9 h1 W, ]# v! A6 A5 C3 w3 Y. w% Q! }) J$ ?0 G
1、打开AiCube界面
5 p+ |1 x' a' m" @打开最新的ISP v6.96版本的软件,点击菜单项“AiCube”打开AiCube界面; _. |# ^% |/ J0 V
' h1 M2 D5 z) A" s9 z0 n; y
22、创建项目: Z# B8 `& d: ?
点击AiCube界面中的新建项目按钮,选择“Ai8051U-32Bit”型号
! X8 W/ c5 ?. c* I+ k输入项目名称和项目路径,如下图,点击确定按钮进行项目设置; a* {8 Y6 g7 f' K6 |! ?0 {
( z9 U9 K5 E `& x% U) L+ r4 c
: u. T! H& W& B; {8 \5 j& i# P3、I/O口配置% n4 m$ q; E! Y/ e% J& M( ]
在AiCube的点击左侧的“图形化I/O口配置”,8 J1 r2 `9 h: E- k4 X8 e" l B# \
在界面的右侧多PWM1端口进行配置2 w4 Y* @" ]# Z% U a' U
- _3 c: z$ G9 E3 i! v8 \
4、使能PWM模块
, t6 e' @, ]" x4 _6 k! x在AiCube的左侧外设列表中找到PWMA
' x- }& t5 @' g! z; H并勾选使能PWMA外设
7 X0 o$ }( i2 V/ f
5、PWMA模块设置
_/ u& t* ~2 |- VPWM模块工作模式选择“简单PWM输出”,% E* o! j6 d" k8 t
重载值设置为1999,即周期为2000(0~1999); W. ^+ \9 [* ?
/ `' h* q. c- N. Y( N5 c: g打开PWMA的通道1,并使能PWM1P和PWM1N输出,使能互补输出
3 C( N- [! f1 d. l* ` n
% O: E; V8 o, ^
使能PWMA模块的DMA功能
& w. d, C0 t( Z设置DMA事件源为PWMA的更新事件
" Z i5 B- c" M5 i8 r. V设置DMA的基地址为0x0D(即PWMA_CCR1H,PWMA_CCR1L)
) j1 o# k, s! g2 U( m: Q+ o设置DMA的突发传输次数为1次
6 V, z; U4 | G1 r7 z7 v* |设置DMA的突发传输字节数为2字节( L. }1 f. Q2 p) b8 c
设置DMA总传输次数为100( x4 a& ~6 }6 `: ^
使能PWMA的DMA中断
$ e0 }( w/ F, T( d' U Q
/ B2 O/ {& i0 Z) |9 T
6、创建Keil项目
( f- W1 |; p* ^3 j% Y! e! r点击创建项目按钮,开始创建Keil项目3 o% W- r' B* w" A: m4 w- i
' E& {0 w% G6 e: f, a# F: o2 I. {# J7、添加正弦表
) Z; N6 l4 \: I# G& l% U) y6 B" a. O3 o打开下载软件主界面中的“工具”->“正弦数据表生成器”3 X' [/ W5 Z; O; p; p
& T. @+ S( h+ n2 ^0 q6 V d在工具中进行如下设置,产生正弦表4 e& E5 w3 h" _% r; c! W* k
+ v- B6 }3 q$ \将上面的表格数据复制到项目的pwm.c文件中
8 D: e$ |+ w$ B4 E6 ?3 y; [$ f7 C
- d- u$ {0 i" {8、修改代码,触发DMA4 C" A {1 D' x
输入如下代码,将正弦表数据复制到DMA缓冲区,并触发DMA发送
% }; s, G/ P" }4 ^3 d7 S
将触发语句添加到DMA中断中,实现自动重复触发DMA! v! K1 y9 ~" t
- @4 ~% Z( l: m2 F' N
9、编译并下载HEX到Ai8051U目标芯片中4 i) E1 ^1 t) p% N
; X x; d- [: U1 K3 \) [3 u D$ f. a7 }' c; V; Q- x) c: t* a
|
|