slave_pin.c

来自「无线传感器网络操作系统源代码」· C语言 代码 · 共 50 行

C
50
字号
#include "tos.h"#include "SLAVE_PIN.h"#include "dbg.h"#define TOS_FRAME_TYPE SLAVE_PIN_frameTOS_FRAME_BEGIN(SLAVE_PIN_frame) {        char n;#ifdef DOT	char precision;#endif}TOS_FRAME_END(SLAVE_PIN_frame);char TOS_COMMAND(SLAVE_PIN_INIT)() {    VAR(n) = 1;    MAKE_ONE_WIRE_OUTPUT();    SET_ONE_WIRE_PIN();    return 0;} char TOS_COMMAND(SLAVE_PIN_LOW)() {    char prev = inp(SREG) & 0x80;    cli();    VAR(n)--;    MAKE_ONE_WIRE_OUTPUT();    CLR_ONE_WIRE_PIN();    if(prev) sei();    return 0;}char TOS_COMMAND(SLAVE_PIN_HIGH)() {    char prev = inp(SREG) & 0x80;    cli();    VAR(n)++;    if (VAR(n) > 0) {	MAKE_ONE_WIRE_OUTPUT();	SET_ONE_WIRE_PIN();	TOS_SIGNAL_EVENT(SLAVE_PIN_NOTIFY)(); // this should be done from a					      // task, but I'm breaking the					      // convention for the sake of					      // speed.     }    if(prev) sei();    return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?