tag 标签: 实现

相关博文
  • 热度 1
    2015-4-20 18:22
    786 次阅读|
    0 个评论
    以前发过两版简易的串口printf函数实现,最近学习了一段时间Linux的库文件,回过头又有不同的理解。 这一版函数基于MSP430F169,%d %x %o %b的实现不再由自己编写函数,而是调用MSP430-GCC的标准库函数: #include char *itoa(int num, char *str, int radix); send_fun函数指针,指向调用的UARTx的字节发送函数: void uart_printf(send_fun fun, char *fmt, ...) {         char *pnt = (char *)fmt + sizeof(fmt);         char *str, buf ;         int radix;         while (*fmt != '\0') {                 if (*fmt != '%') {                         fun(*fmt);                         fmt += 1;                         continue;                 }                 switch (*(fmt + 1)) {                 case 'c':                         fun(*((int *)pnt));                         pnt += sizeof(int);                         fmt += 2;                         continue;                 case 's':                         str = (char *)*((int *)pnt);                         while (*str != '\0')                                 fun(*str++);                         pnt += sizeof(int);                         fmt += 2;                         continue;                 case 'd':                         radix = 10;                         goto SEND_NUM;                 case 'x':                         radix = 16;                         goto SEND_NUM;                 case 'o':                         radix = 8;                         goto SEND_NUM;                 case 'b':                         radix = 2;                         goto SEND_NUM; SEND_NUM:                         str = itoa(*(int *)pnt, buf, radix);                         while (*str != '\0')                                 fun(*str++);                         pnt += sizeof(int);                         fmt += 2;                         continue;                 default:                         break;                 }         } } 实际上,库stdio.h中也提供了printf的实现,直接调用它们就可以了: int __attribute__((format (printf, 2, 3))) uprintf(int (*func)(int c), const char *fmt, ...);  
  • 热度 4
    2013-9-25 21:12
    406 次阅读|
    0 个评论
      本安电源 原理与设计           本安电源即本质安全型输出电源,属于有本质安全性保护的电气设备(GB3836.4)。 通过控制设备本身能量水平,使其在正常工作或故障条件下产生的电火花能量均低于点燃爆炸性气体的临界条件,而不用通过其他方式(如隔爆)屏蔽或阻拦。     通过限制电气设备电路的各种参数,或采取保护措施来限制电路的火花放电能量和热能,使其在正常工作和规定的故障状态下产生的电火花和热效应均不能点燃周围环境的爆炸性混合物,从而实现了电气防爆,这种电气设备的电路本身就具有防爆性能,也就是从“本质”上就是安全的,故称为本质安全型。采用本安电路的电气设备称为本质安全型电气设备。     由于本安型电气设备的电路本身就是安全的,所产生的火花、电弧和热能都不会引燃周围环境爆炸性混合物,因此本安型电气设备不需要专门的防爆外壳,这样就可以缩小设备的体积和重量,简化设备的结构。同时本安型电气设备的传输线可以用胶质线和裸线,可以节省大量电缆。因此,本安型电气设备具有安全可靠、结构简单、体积小、重量轻、造价低、制造维修方便等特点,是一种比较理想的防爆电气设备。但由于本安型电气设备的最大输出功率为25W左右,因而使用范围受到了限制。目前本安型电气设备主要用于通讯、监控、信号和控制系统,以及仪器、仪表等。    本安电源为本安设备(传感器,变送器,执行器等)提供电源。一个系统或者设备要达到本安的条件,电源输出必须达到本质安全的要求,而且电源和设备连接工作后整体需要达到本质安全的要求。实现本质安全的措施即限制电源在个中状态下的能量,记载正常工作情况下和故障状态下的火花放电能量。具体措施包括电流限制,电压限制,过电压限制。     图一给出一种本质安全电源的功能结构框图。   图1 本质安全电源的结构框图     图2给出图1中 本质安全管理模块的原理框图。   图2  为 本质安全管理模块的原理框图。       如图1图2所示,本安电源包括 输入模块、隔离型DC-DC稳压变换模块 (又叫DC-DC电源隔离模块) 本质安全管理模块、状态指示模块。所述本质安全管理模块包括两个电流检测单元、两个电压检测单元和两个快速关断单元, 本质安全管理模块为核心模块,当出现人为故障或输出短路故障或者外接负载接通和断开瞬间,本质安全管理模块保证所产生的电火花的能量不致于点燃环境中的爆炸物质。    对于输出能量小的本安电源还有一种简单的处理方式,如图3 友情链接: http://only-1s.taobao.com/  
相关资源
广告