ATTINY13A的看门狗代码
基于ATtiny13的无级调光头灯程序
基于ATtiny13的无级调光手电筒程序市面上的头灯一般有强光、弱光、爆闪三个挡位,一个按钮来控制开/关和换挡,顺序是:开(强光)-〉弱光->闪烁->关,每次开/关灯需要按三次,非常不方便。
两年前改造的五挡调光头灯一直用的很好,操作简便又人性化。
近来比较空闲,突发DIY一个有无级调光功能的头灯想法。
于是在网上搜索合适DIY的头灯,搜索原则是散热性能好、能变焦、尽量是装两节18650电池的灯。
本人喜欢变焦灯,因为照射范围可调又均匀。
第一次购买的灯完全失败,散热极差,为了节省成本居然灯头的重要部件用的是硬塑料,直接丢掉。
第二次买的还好,惊喜的是他的控制芯片用的是CX2812,它的引脚与ATTiny13单片机类似,替换控制芯片,稍微改动电路板的布线就可以利用原配的控制板,避免了从头开始做控制板,省去了最繁琐的印刷电路板的制作了。
通过ATtiny13a单片机的编程实现了一下功能:1、按一次开灯,再按一次就关灯,解决了按三次关灯的不方便的问题。
2、开关灯保留了逐步亮和逐步暗的功能,此功能非常人性化,本人很喜欢。
具体实现如下:开灯的时候PWM信号的占空比从0开始逐步加到设定的亮度,关灯时候占空比逐步减到0。
3、无级调光:在灯亮状态下按住按钮,LED灯亮度增加或减少,亮度达到100%或10%时闪烁三次来提醒亮度已经达到了全亮或最暗,松开按钮就停止调光,一直按住就循环调光。
程序中利用了ATtiny13a的PWM、外部中断(PCINT0)、睡眠、看门狗和EEPROM的读写功能,基本上每一行都加了注释,对于初次接触ATtiny13的人来说应该有帮助。
图片1:头灯图片2:头灯控制板(此控制板网上也有卖的)图片3:程序调试电路图图片4:用面包板搭建程序调试电路图片5:基于ATTiny13A的控制板电路图图片6:修改后的ATTiny13A控制板图片7:18650电池下的待机电流为0.26uA。
程序编辑和编译工具用了CodeVisionAVR 2.04.4a,烧写工具用了progisp1.72。
TINY13A中文翻译
(PCINT5/RESET/ADC0/dW) PB5 1 (PCINT3/CLKI/ADC3) PB3 2 (PCINT4/ADC2) PB4 3 GND 4
8 VCC 7 PB2 (SCK/ADC1/T0/PCINT2) 6 PB1 (MISO/AIN1/OC0B/INT0/PCINT1) 5 PB0 (MOSI/AIN0/OC0A/PCINT0)
有运行并提供复位销没有被禁用。表 中给出的最小脉冲长度是18-4在120
imum
pulse
length
is
given
in
Table
18-4
on
page
120.
Shorter
pulses
are
not
guaranteed
to
页。短脉冲都不能保证生成一个重 generate a reset.
置。 重置密码也可以用作(弱)I / O销。 The reset pin can also be used as a (weak) I/O pin.
活。端口是别针tri-stated重置条件时 even if the clock is not running.
变得活跃, 即使时钟没有运行。
端口B还提供各种特殊的功能特性的 Port B also serves the functions of various special features of the ATtiny13A as listed on page
ATtiny13A上,55页。
55.
1.1.4 RESET 重置
复位输入。低水平在这销超过最小脉 Reset input. A low level on this pin for longer than the minimum pulse length will generate a
看门狗计时器 程序说明书
看门狗计时器程序说明
本说明只针对采用Winbond W83627HF(super I/O)系列芯片的产品。
要使用看门狗功能需先将主板上的WATCHDOG跳线跳成RESET模式
一 Winbond W83627HF可提供的功能如下:
1程序控制看门狗功能的启动与停止
2计时器计数范围从1-255,时间单位为秒或者分。
3本公司产品只提供复位功能。
计时结束后,系统将重启。
二看门狗计时器编程说明:
1程序执行流程:
2看门狗计时器寄存器说明
INDEX(2EH) DATA(2FH)
87H ――写两次,启动super I/O
07H 08H 选择寄存器
F5H 选择时间单位
秒
00H
分
08H
F6H 计数范围
停止计数
00H
01H-FFH 1-255任意
AAH ――停止看门狗功能
三例子:DOS下运行DEBUG命令
-O 2E 87
-O 2E 87 ;启动
-O 2E 07
-O 2F 08 ;选择寄存器
-O 2E F5
-O 2F 00 ;计时单位为秒
-O 2E F6
-O 2F 10 ;计时时间10秒
回车后,系统将在10秒后重启。
注:由于Winbond W83627HF芯片的问题,在使用分钟为计时单位时将会快半分钟。
看门狗介绍
看门狗(watchdog)"看门狗"(watchdog) ,又叫 watchdog timer,是一个定时器电路,是在由单片机构成的微型计算机系统中,为了防止单片机的工作受到来自外界电磁场的干扰,造成程序的跑飞,陷入死循环,而设计的用于监测单片机程序运行状态的芯片。
若程序程序的跑飞,陷入死循环,正常运行将会被打断,由单片机控制的系统将无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果。
◆基本原理在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。
看门狗可使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。
◆分类和使用方法看门狗可分为硬件看门狗和软件看门狗两种。
硬件看门狗:硬件看门狗的主体是一个定时电路,并由被监控CPU提供周期性“喂狗”信号,对定时器清零(俗称“清狗”)。
CPU正常工作时,由于能定时“清狗”,看门狗内的定时器不会溢出。
当CPU出现故障,则不能继续提供“清狗”信号,使得看门狗内定时器不断累加而溢出,从而触发一个复位信号对CPU进行复位,使CPU重新工作。
常用的看门狗芯片有ADM706/MAX706,为了使硬件看门狗更可靠,使用起来更灵活,当今主流的设计方式都是看门狗芯片配合逻辑器件(CPLD)来使用。
此时,看门狗有三种清狗方式:1)正常工作时,CPU输出WDI信号清狗;2)CPU关闭看门狗(不输出WDI信号),由CPLD输出WDI清狗信号,此方法不推荐使用,容易出问题,有的设计规范中是严禁CPU关闭看门狗的;3)CPU挂死后,CPLD主动输出WDI清狗信号一段时间,如果CPU仍未恢复正常,则不再继续清狗,等待看门狗芯片内部定时器溢出后输出复位信号对CPU进行复位。
ATTINY13指令整理
数据传送指令 指令 MOV MOVW LDI LD LD LD LD LD LD LDD LD LD LD LDD LDS ST ST ST ST ST ST STD ST ST ST STD STS LPM LPM LPM SPM IN OUT PUSH POP 操作数 说明 Rd, Rr 寄存器间复制 Rd, Rr 复制寄存器字 Rd, K 加载立即数 Rd, X 加载间接寻址数据 Rd, X+ 加载间接寻址数据,然后地址加一 Rd, - X 地址减一后加载间接寻址数据 Rd, Y 加载间接寻址数据 Rd, Y+ 加载间接寻址数据,然后地址加一 Rd, - Y 地址减一后加载间接寻址数据 Rd,Y+q 加载带偏移量的间接寻址数据 Rd, Z 加载间接寻址数据 Rd, Z+ 加载间接寻址数据,然后地址加一 Rd, -Z 地址减一后加载间接寻址数据 Rd, Z+q 加载带偏移量的间接寻址数据 Rd, k 从 SRAM 加载数据 X, Rr 以间接寻址方式存储数据 X+, Rr 以间接寻址方式存储数据,然后地址加一 -X, Rr Y, Rr 加载间接寻址数据 Y+, Rr 加载间接寻址数据,然后地址加一 -Y, Rr Y+q,Rr 加载带偏移量的间接寻址数据 Z, Rr 加载间接寻址数据 Z+, Rr 加载间接寻址数据,然后地址加一 -Z, Rr Z+q,Rr 加载带偏移量的间接寻址数据 k, Rr 从 SRAM 加载数据 加载程序空间的数据 Rd, Z 加载程序空间的数据 Rd, Z+ 加载程序空间的数据,然后地址加一 保存程序空间的数据 Rd, P 从 I/O 端口读数据 P, Rr 想 I/O 端口输出数据 Rr 将寄存器推入堆栈 Rd 将寄存器弹出堆栈 操作 Rd ← Rr Rd+1:Rd ← Rr+1:Rr Rd← K Rd ← (X) Rd ← (X), X ← X + 1 X ← X - 1, Rd ← (X) Rd ← (Y) Rd ← (Y), Y ← Y + 1 Y ← Y - 1, Rd ← (Y) Rd ← (Y + q) Rd ← (Z) Rd ← (Z), Z ← Z+1 Z ← Z - 1, Rd ← (Z) Rd ← (Z + q) Rd← (k) (X) ← Rr (X) ← Rr, X ← X + 1 X ← X - 1, (X) ← Rr (Y) ← Rr (Y) ← Rr, Y ← Y + 1 Y ← Y - 1, (Y) ← Rr (Y + q) ← Rr (Z) ← Rr (Z) ← Rr, Z ← Z + 1 Z ← Z - 1, (Z) ← Rr (Z + q) ← Rr (k) ← Rr R0 ← (Z) Rd ← (Z) Rd ← (Z), Z ← Z+1 (z) ← R1:R0 Rd ← P P ← Rr STACK ← Rr Rd ← STACK 标志 None None None None None None None None None None None None None None None None None None None None None None None None None None None None None None None None None None None # 时钟数 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 1 1 2 2
看门狗指令
警戒时钟的定时时间为300毫秒,每次扫描它都被自动复位一次,正常工作时,如果扫描周期小于300毫秒,警戒时钟不起作用。
如果强烈的外部干扰使可编程控制器偏离正常的程序执行路线, 警戒时钟不再被周期性的复位,定时时间到, 可编程控制器将停止运行。
若程序扫描的时间超过300毫秒,为了防止在正常的情况下警戒时钟动作,可将警戒时钟刷新指令(WDR)插入到程序中适当的地方,使警戒时钟复位。
这样,可以增加一次扫描时间。
指令格式如图4-65所示。
LD M2.5 // M2.5接通时 WDR //重新触发WDR , 允许扩展扫描时间
工作原理:当使能输入有效时,警戒时钟复位。
可以增加一次扫描时间。
若使能输入无效,警戒时钟定时时间到,程序将终止当前指令的执行,重新启动,返回到第一条指令重新执行。
注意:如果使用循环指令阻止扫描完成或严重延迟扫描完成,下列程序只有在扫描循环完成后才能执行::通信(自由口方式除外), I/O 更新(立即I/O 除外),强制更新,SM 更新,运行时间诊断,中断程序中的STOP 指令。
10毫秒和100毫秒计时器对于超过25秒的扫描不能正确地累计时间。
注意:如果预计扫描时间将超过500毫秒,或者预计会发生大量中断活动,可能阻止返回主程序扫描超过500毫秒,应使用WDR 指令,重新触发看门狗计时器。
图4-65 WDR 指令格式。
Almel ATtiny13 微 控制器 说明书
产品特性•高性能、低功耗的 8位AVR®微处理器•高级RISC结构–120条指令 – 大多数指令执行时间为单个时钟周期–32 个8位通用工作寄存器–全静态工作–工作于20 MHz时性能高达20 MIPS•非易失性程序和数据存储器–1K字节的系统内可编程Flash擦写寿命: 10,000次–64字节的系统内可编程EEPROM擦写寿命: 100,000次–64字节的片内SRAM–可以对锁定位进行编程以及实现EEPROM数据的加密•外设特点–一个具有独立预分频器的8位定时器/计数器及两条PWM通道–含有片内参考电压的4路10位ADC控制器–具有独立片内振荡器的可编程看门狗定时器–片内模拟比较器•特殊的处理器特点–片内调试系统–通过SPI端口在系统内可编程–片内/片外中断源–低功耗空闲模式、噪声抑制模式、省电模式–增强型上电复位–可编程的掉电检测–片内标定振荡器•I/O和封装–8引脚PDIP/SOIC: 6可编程 I/O线•工作电压:–ATtiny13V:1.8 - 5.5V–ATtiny13:2.7 - 5.5V•速度等级–ATtiny13V: 0 - 4 MHz @ 1.8 - 5.5V, 0 - 10 MHz @ 2.7 - 5.5V–ATtiny13: 0 - 10 MHz @ 2.7 - 5.5V, 0 - 20 MHz @ 4.5 - 5.5V•工业级温度范围•低功耗–正常模式:1 MHz, 1.8V: 240µA–掉电模式:< 0.1µA at 1.8V引脚配置Figure 1. ATtiny13芯片引脚2ATtiny132535D–AVR–04/04综述ATtiny13是基于增强的AVR RISC 结构的低功耗8位CMOS 微控制器。
由于其先进的指令集以及单时钟周期指令执行时间,ATtiny13的数据吞吐率高达1MIPS /MHz ,从而可以缓减系统在功耗和处理速度之间的矛盾。
看门狗MAX705、706、813中文说明
看门狗MAX705、706、813中文说明看门狗MAX705/706/8131 概述MAX705/706/813L是一组CMOS监控电路,能够监控电源电压、电池故障和微处理器(MPU或mP)或微控制器(MCU或mC)的工作状态。
将常用的多项功能集成到一片8脚封装的小芯片内,与采用分立元件或单一功能芯片组合的电路相比,大大减小了系统电路的复杂性和元器件的数量,显著提高了系统可靠性和精确度。
该系列产品采用3种不同的8脚封装形式:DIP、SO和mMAX。
主要应用于:微处理器和微控制器系统;嵌入式控制器系统;电池供电系统;智能仪器仪表;通信系统;寻呼机;蜂窝移动电话机;手持设备;个人数字助理(PDA);电脑电话机和无绳电话机等等。
2 功能说明2.1 RESET/RESET操作复位信号用于启动或者重新启动MPU/MCU,令其进入或者返回到预知的循环程序并顺序执行。
一旦MPU/MCU处于未知状态,比如程序“跑飞”或进入死循环,就需要将系统复位。
对于MAX705和MAX706而言,在上电期间只要Vcc大于1.0V,就能保证输出电压不高于0.4V的低电平。
在Vcc上升期间RESET维持低电平直到电源电压升至复位门限(4.65V或4.40V)以上。
在超过此门限后,内部定时器大约再维持200ms后释放RESET,使其返回高电平。
无论何时只要电源电压降低到复位门限以下(即电源跌落),RESET 引脚就会变低。
如果在已经开始的复位脉冲期间出现电源跌落,复位脉冲至少再维持140ms。
在掉电期间,一旦电源电压Vcc降到复位门限以下,只要Vcc不比1.0V还低,就能使RESET维持电压不高于0.4V 的低电平。
MAX705和MAX706提供的复位信号为低电平RESET,而MAX813L提供的复位信号为高电平RESET,三者其它功能完全相同。
有些单片机,如INTEL的80C51系列,需要高电平有效的复位信号。
2.2 看门狗定时器MAX705/706/813L片内看门狗定时器用于监控MPU/MCU的活动。
窗口看门狗编程指南
1)使能WWDG 时钟WWDG 不同于IWDG,IWDG 有自己独立的40Khz 时钟,不存在使能问题。
而WWDG使用的是PCLK1 的时钟,需要先使能时钟。
而且还是通过分频器进行分频过后的才能作为计数器的时钟。
寄存器是配置寄存器(WWDG_CFR)第7位和8位WDGTB[1:0]: 时基(Timer base)预分频器的时基可以设置如下:00: CK计时器时钟(PCLK1除以4096)除以101: CK计时器时钟(PCLK1除以4096)除以210: CK计时器时钟(PCLK1除以4096)除以411: CK计时器时钟(PCLK1除以4096)除以8 我们这里一般默认为00,不做修改的。
例如:RCC->APB1ENR|=1<<11; //使能wwdg时钟2)设置WWDG_CFR 和WWDG_CR 两个寄存器配置寄存器(WWDG_CFR)的各位介绍:位31:10 保留。
位9 EWI: 提前唤醒中断(Early wakeup interrupt) 此位若置’1’,则当计数器值达到40h,即产生中断。
此中断只能由硬件在复位后清除。
位8:7 时基,如上面介绍位6:0 W[6:0]: 7位窗口值(7-bit window value) 这些位包含了用来与递减计数器进行比较用的窗口值(也就是窗口可写时的上限值,最大值)控制寄存器(WWDG_CR)的各位介绍:位31:8 保留。
位7 WDGA: 激活位(Activation bit) 此位由软件置’1’,但仅能由硬件在复位后清’0’。
当WDGA=1时,看门狗可以产生复位。
0:禁止看门狗1:启用看门狗位6:0 T[6:0]: 7位计数器(MSB至LSB) (7-bit counter) 这些位用来存储看门狗的计数器值。
每(4096x2WDGTB)个PCLK1周期减1。
当计数器值从40h变为3Fh时(T6变成0),产生看门狗复位。
在对T【6:0】计时设置的时候一定要先让T6等于1 防止被复位。
MAX813看门狗电路
看门狗电路设计在工业现场运行的单片机应用系统,由于坏境恶劣,常有强磁场、电源尖峰、电火花等外界干扰,这些干扰可能造成仪表中单片机的程序运行出现“跑飞〞现象,引起程序混乱,输出或显示不正确,甚至“死机〞。
系统无法继续正常的运行,处在一种瘫痪状态,它的硬件电路并没有损坏,只是内部程序运行出现了错误,这时,即使干扰消失,系统也不会恢复正常,这就需要采取一些措施来保障系统失控后能自动恢复正常,“程序运行几天来视系统〞〔Watchdog看门狗〕就是常用的一种抗干扰措施,用以保证系统因干扰失控后能自动复位。
为了提高仪表可靠性及抗干扰能力,通常在智能仪表中采用“看门狗〞技术。
看门狗电路它实质上是一个可由CPU复位的定时器,它的定时时间是固定不变的,一旦定时时间到,电路就产生复位信号或中断信号。
当程序正常运行时,在小于定时时间隔内,单片机输出一信号刷新定时器,定时器处于不断的重新定时过程,因此看门狗电路就不会产生复位信号或中断信号,反之,当程序因出现干扰而“跑飞〞时,单片机不能刷新定时器,产生复位信号或产生中断信号使单片机复位或中断,在中断程序中使其返回到起始程序,恢复正常。
它的工作原理如同图3-4所示的两个计时周期不同的定时器T1和T2是两个时钟源一样的定时器,设T1=1.0s,T2=1.1s,而用T1定时器的溢出脉冲P1同时对T1和T2定时器清零,只要T1定时器工作正常,那么定时器T2永远不可能计时溢出。
当T1定时器不在计时,定时器T2那么会计时溢出,并产生溢出脉冲P2。
一旦产生溢出脉冲P2,那么说明T1出了故障。
这里的T2即是看门狗。
利用溢出脉冲P2并进展巧妙的程序设计,可以检测系统的出错,而后使“飞掉〞的程序重新恢复运行。
图3-4 看门狗工作原理示意图看门狗电路的应用,使单片机可以在无人关态下实现连续工作。
看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平〔或低电平〕,这一程序语句是分散地放在单片机其它控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段不进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,即程序存储器的起始位置开场执行,这样便实现了单片机的自动复位。
AVA刷枪代码大全
1645 1646 1647 1648 杀戮AK74M
1692 X
1705 1706 1707 1708 1709 赤金M16A2
1711 1712 1713 1714 1715 刺刀AK47
1730 1731 1732 1733 1734 吉祥AN94
954 955 956 虎 PPsh41
988 989 990 991 FN TPS
993 994 995 996 Blue Skull
1001 1002 1003 1004 狂徒 P90
1043 1044 1045 1046 1047 爆炎 SPAS15
1056 1057 1058 1059 1060 欢腾 M4 Spectre
1546 1547 1548 龙 AK47
1551 1552 1553 虎M4A1
1584 1585 1586 1587 鹰眼AK47
1589 1590 1591 1601 黄魂AK47
1597 1598 1599 1600 G3A3 Nero
1601 黄魂AK47(P)
1624 1625 1ቤተ መጻሕፍቲ ባይዱ26 枭狼 STG44
397 ?保莱塔
398 399 400 401 保莱塔
402 X
419 420 421 422 423 红莲双舞 Beretta92
441 442 443 444 Luger P-08鲁格手枪(需AP)
769 MP5K PDW
770 Uzi
771 Bizon PP19
774 P90
1985 1986 1987 1988 Walther Wa-2000
7_看门狗(WatchDog)(免费下载)
在程序里如何进行喂狗操作呢?一般的做法是,先编写一个能够使 WDI 状态反转的喂 狗函数,然后把函数调用插入到每一个可能导致长时间执行的程序段里,最常见的情况是 while(1)、for(;;)之类的无条件循环语句。
一旦程序因为意外情况跑飞,很可能会陷入一个不含喂狗操作的死循环里,超过 1.6s 后就会自动复位重来,而不会永远停留在故障状态。
3
表 1.2 函数 WatchdogEnable( )
为了防止在调试软件时看门狗产生复位,看门狗模块还提供了允许其暂停计数的功能。
1.3 如何正确使用看门狗
看门狗真正的用法应当是:在不用看门狗的情况下,硬件和软件经过反复测试已经通过, 而在考虑到在实际应用环境中出现的强烈干扰可能造成程序跑飞的情况时,再加入看门狗功 能以进一步提高整个系统的工作可靠性。可见,看门狗只不过是万不得已的最后手段而已。
函数 WatchdogRunning( )可以探测看门狗是否已被使能。参见表 1.3 的描述。 函数 WatchdogResetEnable( )使能看门狗定时器的复位功能,一旦看门狗定时器产生了 二次超时事件,将引起处理器复位。函数 WatchdogResetDisable( )禁止看门狗定时器的复位 功能,此时可以把看门狗作为一个普通定时器来使用。参见表 1.4 和表 1.5 的描述。 在进行单步调试时,看门狗定时器仍然会独立地运行,这将很快导致处理器复位,从而 破坏调试过程。函数 WatchdogStallEnable( )允许看门狗定时器暂停计数,可防止在调试时引 起不期望的处理器复位。函数 WatchdogStallDisable( )将禁止看门狗定时器暂停。参见表 1.6 和表 1.7 的描述。
奥西135代码大全
奥西135代码大全A-1ROM数据不良(未进行机电A调整)。
A-2机电A调整不良。
A-3CPU异常。
B-1大臂上升压力传感器异常。
B-2、大臂下降压力传感器异常。
B-3、小臂收回压力传感器异常。
B-4、小臂外伸压力传感器异常。
B-5、铲斗收回压力传感器异常。
B-6、铲斗外伸压力传感器异常。
B-7、回转压力传感器异常。
B-9、右行走压力传感器异常。
B-10、左行走压力传感器异常。
C-1、P1油泵压力传感器异常。
C-2、P2油泵压力传感器异常。
D-1、P1中立切断比例阀异常。
D-2、P2中立切断比例阀异常。
D-3、直线行走比例阀异常。
D-4、大臂合流比例阀异常(仅-2机型)。
D-5、慢速回转比例阀异常(仅-2机型)。
D-6、小臂可变再生比例阀异常(仅-3机型)。
E-1、P1油泵比例阀异常。
E-2、P2油泵比例阀异常。
F-1、增压电磁阀异常。
F-2、回转制动电磁阀异常。
F-3、行走速度转换电磁阀异常。
F-4、FC模式(微操作)电磁阀异常(仅-2机型)。
F-5、直线行走电磁阀异常(仅-2机型)。
G-1、步进电机电流异常。
G-2、步进电机无起点分度。
G-5、发动机熄火(显示E/G逆转)。
神钢SK200-6故障代码:1、机电控制器故障。
1-1、仪表与机电控制器通信异常。
1-2、蓄电池继电器异常。
A-1、未进行机电A调整。
A-2、机电A调整不良。
B-1、大臂上生压力传感器异常。
B-2、大臂下降压力传感器异常。
B-3、小臂收回压力传感器异常。
B-4、小臂外伸压力传感器异常。
B-5、铲斗收回压力传感器异常。
B-6、铲斗外伸压力传感器异常。
B-7、右回转压力传感器异常。
B-8、左回转压力传感器异常。
B-9、右行走压力传感器异常。
B-10、左行走压力传感器异常。
B-11、P1负压传感器异常。
B-12、P2负压传感器异常。
B-15、背压压力传感器异常。
C-1、P1油泵压力传感器异常。
C-2、P2油泵压力传感器异常。
D-1、P1中立切断比例阀异常。
watchdog 参数
watchdog 参数
watchdog是一个Python库,用于监视文件系统、进程和网络
等方面的变化,并在检测到特定事件时触发相应的操作。
watchdog
库提供了许多参数,用于配置监视器的行为。
以下是一些常用的参数:
1. Path,监视的路径,可以是文件或目录的路径。
2. Recursive,是否递归监视子目录,默认为True。
3. Patterns,要监视的文件模式,可以使用通配符进行匹配。
4. Ignore_patterns,要忽略的文件模式,可以使用通配符进
行匹配。
5. Ignore_directories,是否忽略目录的变化,默认为False。
6. Case_sensitive,是否区分大小写,默认为True。
7. Event_handler,事件处理器,定义了在发生特定事件时要
执行的操作。
8. Recursive,是否递归监视子目录,默认为True。
9. Timeout,超时时间,超过此时间没有事件发生时会触发
on_timeout事件。
10. Queue_class,事件队列的类,用于存储事件并在处理时进
行调度。
这些参数可以根据具体的监视需求进行配置,例如可以指定要
监视的路径、要监视的文件类型、忽略某些特定的文件或目录等。
通过合理配置这些参数,可以实现对文件系统、进程和网络等方面
的监视,并在检测到特定事件时触发相应的操作。
除了上述参数外,watchdog还提供了许多其他参数,具体可以参考官方文档以及相关
的示例代码来进行更深入的了解。
基于ATtiny13的手电筒(头灯)控制电路和程序
TCCR0B |= (0<<WGM02)|(0<<CS02)|(1<<CS01)|(0<<CS00); //8分频(4.6875KHz)
//TCCR0B=0x01; //无预分频
uchar pwm[]={0x20,0x40,0x80,0xC0,0xFF}; //亮度值
uchar pwmVal = 0; //亮度档位
uchar status = 0; //0为LED OFF,1为LED ON
uchar mode = 0; //0为使用模式,1为设置模式
uint keytime = 0; //按键时间
*描述:LED ON开灯
*参数:无
***********************************************************************/
void led_on(void)
{
uchar i;
TCCR0A= 0x83; //开启PWM
for (i=0; i<pwm[pwmVal]; i++)
{
//等待上一次写操作结束
while(EECR&(1<<EEPE));
//设置编程模式
EECR=(0<<EEPM1)|(0>>EEPM0);
//设置地址和数据寄存器
EEAR = address;
EEDR = data;
//置位EEMPE
linux 看门狗应用代码
linux 看门狗应用代码Linux 看门狗应用代码在Linux系统中,看门狗是一种用于监控系统运行状态并重启系统的机制。
当系统出现故障或崩溃时,看门狗会自动检测并采取相应的措施,保证系统的稳定性和可靠性。
在本文中,我们将探讨Linux中的看门狗应用代码。
一、看门狗的基本原理看门狗是一种硬件设备,其通过定时器来监控系统的运行状态。
在Linux系统中,看门狗可以通过编写相应的应用代码来进行控制和配置。
看门狗应用代码的主要作用是设置看门狗的定时器,监测系统状态,并根据需要执行相应的操作。
二、看门狗应用代码的编写1. 引入头文件在编写看门狗应用代码之前,首先需要引入相应的头文件。
可以使用以下代码将相关的头文件包含进来:```#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <fcntl.h>#include <sys/ioctl.h>```2. 打开看门狗设备在Linux系统中,看门狗设备通常被挂载在/dev/watchdog路径下。
可以使用以下代码打开看门狗设备:```int fd = open("/dev/watchdog", O_WRONLY);if (fd == -1) {perror("打开看门狗设备失败");exit(EXIT_FAILURE);}```3. 设置看门狗定时器看门狗的定时器用于设置系统的超时时间。
可以使用以下代码设置看门狗的超时时间为10秒:```int timeout = 10;ioctl(fd, WDIOC_SETTIMEOUT, &timeout);```4. 喂狗为了防止看门狗超时,需要定期喂狗。
可以使用以下代码定期喂狗:```while (1) {ioctl(fd, WDIOC_KEEPALIVE, 0);sleep(1);}```5. 关闭看门狗设备在程序退出之前,需要关闭看门狗设备。
看门狗控制器原理与编程笔记
S3C2410接口之看门狗控制器原理与编程1.看门狗:是一种电路,具有监视并恢复程序正常运行的功能,从而达到增强系统的稳定性。
它本质上是一种定时器电路2.稳定性和定时器之间有什么样的关系呢?3.看门狗增强系统稳定性的基本原理:设一系统程序完整运行一周期的时间是Tp,看狗的定时周期为Ti,要求Ti>Tp。
在程序运行一周期后,修改定时器的计数值,只要程序正常运行,定时器就不会溢出。
若由于干扰等原因使系统不能在Tp 时刻修改定时器的计数值,定时器将在Ti 时刻溢出,引发系统复位,使系统得以重新运行,从而起到监控作用。
s3c2410的看门狗控制器S3C2410 的看门狗定时器有两个功能:(1)定时器功能:可以作为常规定时器使用,它是一个十六位的定时器,并且可以产生中断,中断名为INT_WDT,中断号是0x09。
(2)复位功能:作为看门狗定时器使用,当时钟计数减为0(超时)时,它将产生一个128个时钟周期的复位信号。
S3C2410 ARM9的看门狗主要由五部分构成:时钟、看门狗计时器、看门狗数据寄存器、复位信号发生器、控制逻辑等。
S3C2410 ARM9的看门狗工作原理:PCLK 经过预分频、再分频,使得到达看门狗的频率能够没有那么高,这样看门狗才处理得了。
•S3C2410 看门狗定时时间预分频器为8位,其值为:0---255再分频器可选择值为:16、32、64、128输入到计数器的时钟周期为:T_wtd=1/[PCLK/(Prescaler+1)/Division_factor]看门狗的定时周期为:T=WTDAT(看门狗的计数器的初值)×T_wtd•S3C2410 看门狗的特殊功能寄存器:(共3个,其基地址为0x53000000)•••s3c2410的看门狗控制器编程步骤•1初始化看门狗控制器•时钟设置、输出类型设置设置:给WTCON相应位赋值;•计数器初始值设定:给WTCNT相应位赋值;•数据寄存器赋值:给WTDAT相应位赋值;•2如果把看门狗作为一个普通的定时器使用,还必须把看门狗定时中断处理程序填入中断向量表中,并相关的中断控制相关寄存器初始化;•3使能看门狗控制寄存器:给WTCON相应位赋值(必须在完成上面的工作之后才使能看门狗控制寄存器)例:编写一程序,利用S3C2410看门狗中断产生频率为1kHz的方波,并且从GPB0引脚输出。
三星手机暗码大全
*#06#显示IMEI号,第七第八位是89,90,92的是韩国产的,但是串号可以改的哦。
*#9999#或*#0837#显示软件版本;*#0001#显示RS232串行通信参数设置;*#0228#显示电池容量和温度;*#0523#调节对比度;*#0636#存储器容量显示*#0778# SIM卡信息*#0324#网络检测(工程模式)*2767*2878# EEPROM话机当前设定复位,手机设定总清除,常用于解锁*2767*3855#从字库中取出程序重置EEPROM为出厂值—总复位(修复软件故障)。
对修改过IMEI码的机,此指令可恢复原出厂机身号码。
此指令还用于因EEPROM(码片)内程序紊乱造成的故障。
使用这个命令会清除电话薄,慎重使用。
*2767*7377#解手机密码的复位指令*2767*927# WAP部分清空,解决进WAP设置死机。
原来不能上网,用了该指令以后,就可以上网了!*#8999*228#电池参数显示,类型/电压/温度*#8999*268#更改开机国家英文(表示水改版的原销售地)显示。
*#8999*289#铃声调整,振铃器频率测试/显示频率,上下键调节*#8999*246#程序参数显示*#8999*364#显示Watchdog状态*#8999*377# EEPROM错误显*#8999*427# WATCHDOG信号路径设置*#8999*523#(不插卡*#0523#)液晶显示对比度调节,上下键调节*#8999*636#存贮状态显示*#8999*746# SIM卡文件规格测试*#8999*786#当前日期、时间读取:显示的内容为本次开机的时间以及本次开机后到当前的时间长。
按->后显示最新的本次开机后到当前的时间长;再按->后显示上一次的开机时间;再按->后显示上一次的关机时间以及上次开关机的时长。
*#8999*842#振子振动测试,上下键调节转速*#8999*9266#显示收信通道号和收信强度指示*#8999*947#在重大错误情况下复位设置指令*2767*3855#可用于鉴别手机IMEI码是否被奸商更改。
watchdog解析
watchdog 解析mg2580看门狗硬件,实现分析1. 看门狗使用的是DW_WDT的看门狗.DW是一个公司的看门狗芯片.此驱动程序实现两个看门狗操作:硬件和软件。
硬件看门狗监控系统在下列情况下将reset.它已经停止响应,或软件看门狗有问题.软件看门狗由用户空间应用程序处理应用程序申请挂起处理.2.如何使用看门狗?(1). 打开/dev/watchdog.(2). 使用IOCTL接口来设置超时。
(3). 指定所需的设置。
(4). 通过IOCTL接口喂狗。
应用程序必须这样做是为了避免触发看门狗。
(5). 关闭/dev/watchdog。
如果软件看门狗关闭,驱动将试图杀死进程的看门狗定时器。
如果驱动程序无法杀死该进程系统将重置。
注意!应特别注意使用时使用,因为该软件看门狗明显的影响重置系统。
3. 加载看门狗看门狗驱动默认加载,如果没有加载,可以手动加载,默认超时时间是17s,两种方法可以改变,一种为:(1). modparam dw_wdt hw_default_heartbeat=XX(XX 为1-17s)(2). echo XX > /proc/driver/watchdog/expires看硬件看门狗超时时间.cat /proc/driver/watchdog/expires看软件和硬件看门狗信息:cat /proc/driver/watchdog/status这个前一个命令: 是硬件看门狗启动,超时为17s,没有启动软件看门狗.后一个命令: 是硬件看门狗启动,超时为17s,启动软件看门狗,进程为1161,超时为10s.系统超时总时间为: 10< watch timer < 10+17 s3. 原理:1.软件看门狗通过定时器实现:当定时器超时,运行,定时器处理函数, 重启或kill 进程.2.硬件的喂狗:写寄存器重新启动WDT计数器。
作为安全措施,值0x76必须写入。
重新启动并且清除WDT的中断。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
// Analog Comparator initialization
// Analog Comparator: Off
ACSR=0x80;
ADCSRB=0x00;
// Global enable interrupts
#asm("sei")
while (1)
// INT0: On
// INT0 Mode: Rising Edge
// Interrupt on any change on pins PCINT0-5: Off
GIMSK=0x40;
MCUCR=0x03;
GIFR=0x40;
// Timer/Counter 0 Interrupt(s) initialization
}
// Timer 0 output compare A interrupt service routine
interrupt [TIM0_COMPA] void timer0_compa_isr(void)
{
// Place your code here
//启动看门狗控制输出脚,不是接到被监视芯片的RESET脚复位,而是给主芯片断电,PB3控制继电器输出!
{
// Place your code here
};
}
PORTB=0x00;
DDRB=0x08; //PB3输出
Hale Waihona Puke // Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 0.500 kHz
// Mode: Normal top=FFh
Memory model : Tiny
External RAM size : 0
Data Stack size : 16
*****************************************************/
#include <tiny13a.h>
MCUSR=0;
// Place your code here
}
else if (MCUSR & 2)
{
// External Reset
MCUSR=0;
// Place your code here
}
else if (MCUSR & 4)
// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
// Place your code here
TCNT0 = 0; //清除TIMER0计数,防止比较中断发生
{
// Brown-Out Reset
MCUSR=0;
// Place your code here
}
else
{
// Watchdog Reset
MCUSR=0;
// Place your code here
};
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x00;
TCCR0B=0x01;
TCNT0=0x00;
OCR0A=0x1E; //30次,每次2毫秒,超过60毫秒发生比较中断
OCR0B=0x00;
// External Interrupt(s) initialization
// Input/Output Ports initialization
// Port B initialization
// Func5=In Func4=In Func3=OUT Func2=In Func1=In Func0=In
// State5=T State4=T State3=T State2=T State1=T State0=T
PORTB |= 0X08;
}
// Declare your global variables here
void main(void)
{
// Declare your local variables here
// Crystal Oscillator division factor: 256
Project :
Version :
Date : 2012-3-2
Author : NeVaDa
Company : a
Comments:
Chip type : ATtiny13A
AVR Core Clock frequency: 0.000500 MHz
#pragma optsize-
CLKPR=0x80;
CLKPR=0x08;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
// Reset Source checking
if (MCUSR & 1)
{
// Power-on Reset
/*****************************************************
This program was produced by the
CodeWizardAVR V2.04.4a Advanced
Automatic Program Generator
Copyright 1998-2009 Pavel Haiduc, HP InfoTech s.r.l.