目前共有5篇帖子。 字体大小:较小 - 100% (默认)▼  内容转换:港澳繁體▼
 
点击 回复
783 4
目前總結的TinyOS常用操作
一派掌门 二十级
1楼 发表于:2016-10-12 22:24
使用I/O口組件:
components HplMsp430GeneralIOC;
MyC.LED1 -> HplMsp430GeneralIOC.Port54;  // 用LED1表示P5.4
uses interface HplMsp430GeneralIO as LED1;

將I/O口設置為輸入/輸出:
call LED1.makeInput();
call LED1.makeOutput();
輸入: call LED1.get();
輸出0/1:
call LED1.clr();
call LED1.set();
call LED1.toggle(); // 反轉高低電平


一派掌门 二十级
2楼 发表于:2016-10-12 22:24
讀I/O口所在端口(如P5)的8個I/O口的狀態:
call LED1.getRaw();
(相當於51單片機中的P0、P1之類的寄存器,以及AVR單片機中的PORTA、PORTB等寄存器)
判斷I/O口目前是輸入還是輸出:
call LED1.isInput();
call LED1.isOutput();
讀取或判斷I/O口是否使用其復用功能:
call LED1.selectModuleFunc();
call LED1.selectIOFunc();
call LED1.isModuleFunc();
call LED1.isIOFunc();

 
一派掌门 二十级
3楼 发表于:2016-10-12 22:25
MSP430單片機中有兩個基本定時器:TimerA和TimerB
使用定時器組件:components Msp430TimerC;
使用定時器A:
MyC.TimerA -> Msp430TimerC.TimerA;
uses interface Msp430Timer as TimerA;
必須實現定時器中斷函數:
async event void TimerA.overflow(void) {}
啟用/禁用定時器中斷:
call TimerA.enableEvents();
call TimerA.disableEvents();

 
一派掌门 二十级
4楼 发表于:2016-10-12 22:25
BusyWaitMicroC延時組件
使用組件:
components BusyWaitMicroC;
MyC.BusyWait -> BusyWaitMicroC.BusyWait;
uses interface BusyWait<TMicro, uint16_t>; // 其中的兩個參數不能改變

延時100微秒:
call BusyWait.wait(100);

 
一派掌门 二十级
5楼 发表于:2016-10-12 22:25
標準1秒延時函數
// 延時1秒
void delay_1s(void)
{
        uint8_t i;
        for (i = 0; i < 20; i++) {
            call BusyWait.wait(50000u); // 延時50000微秒(=50毫秒)
        }
}

 

回复帖子

内容:
用户名: 您目前是匿名发表
验证码:
(快捷键:Ctrl+Enter)
 

本帖信息

点击数:783 回复数:4
评论数: ?
作者:巨大八爪鱼
最后回复:巨大八爪鱼
最后回复时间:2016-10-12 22:25
 
©2010-2025 Purasbar Ver2.0
除非另有声明,本站采用知识共享署名-相同方式共享 3.0 Unported许可协议进行许可。