疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)

(六)基础知识补充

常用数据类型

数据类型 字节 数值范围
Char 1 -128~127
Unsigned char 1 0`255
short 2 -32768~32767
Unsigned short 2 0~65535
Int 2 -32768~32767
Unsigned int 2 -32768~32767
Long 4 -231~231-1
Unsigned 4 0~232-1
Float 4 -+1.18E-38~-+3.39E+38

运算符

  1. +、-、*、/;
  2. % 模运算 (5%2=1);
  3. ++、–;
  4. 、>、>=、<、<=、==、!=、&&、||、!、=;
  5. ()强制转换

拓展的关键字—与I/O访问相关

  • sfrb 单字节

语法:sfrb标志符=常量表达式;
等价于无符号字符、只能直接寻址、只能驻留在地址范围0x00~0xFF;
例:sfrbP1OUT=0x0021;

  • sfrw 双字节

语法:sfrw标识符=常量表达式;
等价于无符号字符、只能直接寻址、只能驻留在地址范围0x00~0xFF;
例:sfrwWDTCTL=0x0021;

拓展的关键字—函数类

  • interrupt:

用于中断函数
语法:interrupt [中断向量] void 函数名 ()
参数:中断函数没有参数
返回:中断函数一般是viod, 没有返回一般要说明中断向量

interrupt [TIMERBO_VECTOR] void TIMERB_ISR (void)
{
}

拓展的关键字—#Pragma 编译命令

#Pragma 编译命令控制编译器的储存器分配,控制是否允许用拓展关键字,以及是否输出警告消息。它提供符合标准语法的扩展特性。

#Pragam 编译命令是否可用与 “-e” 选项无关。

基本语句

if 选择语言
while 循环语言
for 循环语言
switch/case 多分支选择语言
do-while 循环语言

各语句格式

if
  1. if(表达式){语句;}
  2. if(表达式){语句1;}else{语句2;}
  3. if (表达式1){语句1;}
    else if (表达式2){语句2;}

    else if (表达式n-1){语句n-1;}
    else {语句n }
Switch/case

switch (表达式)
{
case 常量表达式1:{语句1;}break;
case 常量表达式2:{语句2;}break;

case 常量表达式n: {语句n;}break;
default : {语句n+1;}
}

While

while (表达式)
{
语句;
}
/循环体/

注意:
当表达式为非0(真)时,就重复执行循环体内的语句;
当表达式为0(假)时,就中止while循环,程序将执行循环 结构之外的下一条语句;

Do while

do
{
语句;
}
/循环体/
while (表达式);

注意:
如表达式成立(真),则执行循环体,然后继续判断,直到有表达式不成立(假)时,退出循环,执行do while 结构的下一条语句。

For

for(表达式1;表达式2;表达式3)
{
语句;
}
/循环体/

执行过程如下:

  1. 先求解表达式1的值。
  2. 求解表达式2的值,如表达式2的值为真,则执行循环体中的语句,然后执行下一步的操作。如表达式2的值为假,则结束for循环,转到最后一步。
  3. 若表达式2的值为真,则执行完循环体中的语句后,求解表达式3。
  4. 转到第二步继续执行。
  5. 退出循环执行下面一条语句。

函数的调用

  1. 函数语句。把被调用函数作为主调用函数的一个语句
  2. 函数表达式。函数被放在一个表达式中,以一个运算对象方式出现。这时的被调用函数要求带有返回语句,以返回一个明确的数值参加表达式运算。
  3. 函数参数。被调用函数作为另一个函数的参数。

C430内部函数

_ _bcd-add-type Performs a binary coded decimal operation
_ _bic_SR_register Clears bits in the SR register
bic_SR_register_on_exit Clears bits in the SR register when an interrupt or monitor function returns
bis_SR_regiscer Sets bits in the SR register
bis_SR_register_on_exit Sets bits in the SR register when an interrupt or monitor function returns
_ _data16_read_addr Reads data to a 20-bit SFR register
_ _data16_write_addr Writes data to a 20-bit SFR register
_ _data20_read_type Reads data which has a 20-bit address
_ _data20_write_type Writes data which has a 20-bit address
_ _disable_interrupt Disables interrupts
_ _enable_interrupt Enables interrupts
_ _even_in_range Instructs the compiler to rely on the specifiedvalue being even and within the specified range
_ _get_interrupt_state Returns the interrupt state
_ _get_R4_register Returns the value of the R4 register
_ _get_R5_regiater Returns the value of the R5 register
_ _get_SP_register Returns the value of the stack pointer
_ _get_SR_register Returns the value of the SR register
_ _get_SR_register_on_exit Returns the value of the processor statusregister when the current interrupt ormonitor function returns
_ _ low_power_mode_n Enters a MSP430 low power mode
__low_power_mode_off_on_exit Turns off low power mode when monitor orinterrupt function returns
_ _no_operation Inserts a NOP instruction
_ _9P_code Inserts a constant into the instruction stream
_ _set_interrupt_state Restores the interrupt state
_ _set_R4_register Writes a specific value to the R4 register
_ _set R5_register Writes a specific value to the R5 register
_ _set _SP_register Writes a specific value to the SP register
_ _swap_bytes Executes the SWPB instruction

疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇) -----(六)基础知识补充相关推荐

  1. 独立艺术家大谷spizher带你玩转PaddleGAN

    一个曾被 "卷积网络之父"Yann LeCun(杨立昆)誉为「过去十年计算机科学领域最有趣的想法之一」,是近年来火遍全网,AI 研究者最为关注的深度学习算法方向之一,GAN--生成 ...

  2. 疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)----(十)定时计数器

    疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇) (十) 定时计数器 MSP430G2553带有一个16位时/计数器TIMER_A,用来精确定时或计数.并且添加了3路捕捉比较模块,可以在无需CP ...

  3. 疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)----(十二)AD转换器

    疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇) (十二)AD转换器 ADC10是MSP430 单片机的片上模数转换器,其转换位数为10比特,该模块内部是一个SAR型的AD内核,可以在片内产生参 ...

  4. 疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)----(十四)中断系统

    疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇) (十三)中断系统 中断是暂停CPU正在运行的程序,转去执行相应的中断服务程序,完毕后返回被中断的程序继续运行的现象和技术. 中断源(中断分类) ...

  5. 疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)----(十三)比较器

    疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇) (十三)比较器 比较器是为精确比较测量而设计 如电池电压监测.产生外部模拟信号.测量电流.电容和电阻,结合其他模块还可以实现精确的A/D转换. ...

  6. 疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)----(九)IO口的介绍

    疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇) (九) IO口的介绍 MSP430G2553 共提供了16个IO口,P1.0-P1.7:P2.0-P2.7,即可通用IO口也可以时复用功能. 各 ...

  7. 疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)-----(七)系统时钟的介绍

    疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇) (七)系统时钟的介绍 MSP430G2553 系列单片机的时钟系统,包括2-4个时钟源,可以为外设和CPU提供3个系统时钟. 注意:LFX1不支 ...

  8. 疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)----(十一)看门狗

    疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇) (十一) 看门狗 开看门狗(默认开):WDTCTL=WDTPW; 清看门狗:WDTCTL=WDTPW+WDTCNTCL; 关看门狗:WDTCTL ...

  9. 疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)-----(八)低功耗模式补充

    疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇) (八)低功耗模式补充 如果MSP430处于低功耗模式的工作状态,当可屏蔽中断和非可屏蔽中断源产生时,就会唤醒CPU进入中断处理程序. 入栈保护当 ...

最新文章

  1. 图挖掘与多关系学习:工具与应用,亚马逊与CMU-WWW2021教程(附ppt)
  2. SAP Web Intelligence初探
  3. php截取剩余部分,PHP从字串中截取一部分,支持使用(*)模糊截取
  4. python创建打开文件-python打开文件方式
  5. go micro java_Java Micro Framework:您无法忽略的新趋势
  6. C语言深入理解系列 - 关键字:auto和register
  7. MySQL 显示版本、端口、状态
  8. 日志时间与系统时间不一致问题解决方法
  9. 动感标题文字快闪(闪白特效)开场PR模板MOGRT
  10. js分割字符串转数组
  11. 强烈分享8个功能强大,可以极大提高工作效率的软件
  12. 黑马程序员——多态和抽象类的相关知识
  13. ubuntu 18.04安装 vmware 15
  14. 耳机——AKG K450 及 Beats Solo2 对比
  15. php 调用java接口
  16. 为你的Android Studio更换好看的主题风格
  17. 沙盒在源代码防泄露领域的表现分析
  18. 【iMessage苹果相册推信息推】 Apple DeviceToken生成的装备上的多个利用程序。 public void subscribe(int clientId, Looper looper
  19. LinuxC—标准IO与文件IO学习笔记
  20. 图像指数、对数增强、直方图均衡化

热门文章

  1. 冰河远程控制软件使用
  2. html修改logo,教你用CSS3打造HTML5的Logo
  3. Python3使用pyspark时报错PicklingError
  4. Vue组件生命周期钩子和Vue-Router路由钩子的执行顺序
  5. 货币分拣设备行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  6. Android 自定义模拟时钟控件
  7. 国产数据库应用调查统计
  8. 记一次配置华为路由器DDNS(花生壳)动态域名解析
  9. Decision making
  10. 用Python爬取王冰冰vlog弹幕并制作词云