41、树莓派硬件接口与软件应用全解析

树莓派硬件接口与软件应用全解析

1. Gertboard编程

Gertboard编程与底层Arduino代码颇为相似,都是直接对内存映射的输入输出(IO)进行操作,这就要求具备汇编程序员的精细技能。以下是一段示例代码:

PWMCLK_DIV  = 0x5A000000 | (32<<12);
PWMCLK_CNTL = 0x5A000011;

PWM_CONTROL = 0;  // i.e. off
PWM0_RANGE = 0x400; // all values between 0 and 1023

PWM0_DATA = 0x100; // write output

这段代码看似平常,但其中隐藏着指针间接引用,例如:

#define PWM_CONTROL *pwm
#define PWM_STATUS  *(pwm+1)
#define PWM0_RANGE  *(pwm+4)
#define PWM1_RANGE  *(pwm+8)
#define PWM0_DATA   *(pwm+5)
#define PWM1_DATA   *(pwm+9)

一旦忽略数据类型的警告,就可能破坏后续寄存器,花费大量时间排查不存在的错误。更多关于此板的信息可在 Element14 网站 查找。此外,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值