亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
STM32過欠壓檢測設備代碼
[打印本頁]
作者:
張明明明
時間:
2021-9-2 21:45
標題:
STM32過欠壓檢測設備代碼
自己寫的過欠壓檢測設備,可累計單次運行時間及總運行時間,也可以進行閾值判斷并警報、記錄,通過12864顯示出來
#include "delay.h"
#include "sys.h"
#include "oled.h"
#include "rtc.h"
#include "key.h"
#include "spi.h"
#include "flash.h"
#include "adc.h"
unsigned char r_sec; //單次老煉 秒
unsigned char r_min; //單次老煉 分
unsigned int r_hor; //單次老煉 時
unsigned char a_sec; //累積老煉 秒
unsigned char a_min; //累積老煉 分
unsigned int a_hor; //累積老煉 時
#define N 10 //每通道采10次
#define M 2 //為2個通道
vu16 AD_Value[10][2]; //用來存放ADC轉(zhuǎn)換結(jié)果,也是DMA的目標地址
vu16 After_filter[2]; //用來存放求平均值之后的結(jié)果
u16 i;
u16 ad1;
u16 ad2;
u32 rcounter; //RTC運行秒數(shù)
u8 Buffer[4] = {0}; //累積老煉總秒數(shù)的8位數(shù)據(jù)緩存數(shù)組
u32 acount; //flash存儲的累積老煉秒數(shù)
u32 nacount; //運行時累積老煉秒數(shù)
#define SIZE sizeof(Buffer) //緩存數(shù)組的大小
u32 count4;
#define temp2 count4%86400 //單天運行的秒數(shù)
#define FLASH_SIZE 8*1024*1024 //FLASH字節(jié)個數(shù)
int main(void)
{
u8 t;
u32 count3 = 0;
u32 count2 = 0; //運行時與RTC的差值
u32 count1 = 0; //運行時RTC的初值
u8 fcount1 = 0; //初值鎖存標志
u16 hcur1;
u8 lcur1;
u16 hcur2;
u8 lcur2;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 設置中斷優(yōu)先級分組2
delay_init(); //延時函數(shù)初始化
KEY_Init(); //開關初始化
SPI_Flash_Init(); //flash初始化
Adc_Init();
DMA_Configuration();
OLED_Init(); //OLED初始化
/*****************開機顯示字符******************/
OLED_ShowString(20,0, "****TEST",16);
OLED_ShowString(0,16, "h:",12);
OLED_ShowString(12,16,"0000",16);
OLED_ShowString(56,16, "m:",12);
OLED_ShowString(68,16,"00",16);
OLED_ShowString(92,16, "s:",12);
OLED_ShowString(104,16,"00",16);
OLED_ShowString(0,32, "h:",12);
OLED_ShowString(12,32,"0000",16);
OLED_ShowString(56,32, "m:",12);
OLED_ShowString(68,32,"00",16);
OLED_ShowString(92,32, "s:",12);
OLED_ShowString(104,32,"00",16);
OLED_ShowString(0,48, "u:",12);
OLED_ShowString(12,48,"000.0A",16);
OLED_ShowString(68,48, "d:",12);
OLED_ShowString(80,48,"000.0A",16);
OLED_Refresh_Gram();
while(RTC_Init()) //RTC初始化 ,一定要初始化成功
{
delay_ms(800);
}
while(SPI_Flash_ReadID()!=W25Q64)//Flash ID檢測
{
delay_ms(1800);
}
SPI_Flash_Read(Buffer,FLASH_SIZE-100,SIZE); //讀上次累積的時間
acount = Buffer[0] + Buffer[1]*255 + Buffer[2]*65536 + Buffer[3]*16777216;
a_sec = ((acount%86400)%3600)%60; //上次老煉秒
a_min = ((acount%86400)%3600)/60; //上次老煉分
a_hor = acount/3600; //上次老煉時
while(1)
{
filter();
ad1 = GetVolt(After_filter[0]);
ad2 = GetVolt(After_filter[1]);
hcur1 = ad1/10;
lcur1 = ad1%10;
hcur2 = ad2/10;
lcur2 = ad2%10;
if(KEY0 == 0) //判斷是否正常運行,0為正常,1為異常
{
LED0 = 1;
if(fcount1 == 0) //獲取此時RTC的值
{
count1 = RTC_GetCounter();
delay_ms(500);
fcount1 = 1;
}
if(fcount1 == 1)
{
count2 = rcounter - count1; //獲取差值
count4 = count3 + count2;
nacount = acount + count4;
a_sec = ((nacount%86400)%3600)%60; //獲取此次累積運行秒
a_min = ((nacount%86400)%3600)/60; //獲取此次累積運行分
a_hor = nacount/3600; //獲取此次累積運行時
Buffer[0] = nacount;
Buffer[1] = nacount>>8;
Buffer[2] = nacount>>16;
Buffer[3] = nacount>>24;
SPI_Flash_Write((u8*)Buffer,FLASH_SIZE-100,SIZE); //保存此次累積運行的時間
r_sec = (temp2%3600)%60; //獲取單次運行秒
r_min = (temp2%3600)/60; //獲取單次運行分
r_hor = count4/3600; //獲取單次運行時
if(r_hor>=999)
{
r_hor = 0;
}
}
}
else
{
fcount1 = 0;
count3 = count4;
LED0 = 0;//蜂鳴器響;
}
if(KEY1 == 0) //單次運行各狀態(tài)復位
{
fcount1= 0;
count2 = 0;
count3 = 0;
count4 = 0;
r_sec = 0;
r_min = 0;
r_hor = 0;
acount = Buffer[0] + Buffer[1]*255 + Buffer[2]*65536 + Buffer[3]*16777216;
}
if(WK_UP == 1) //累積運行及單次運行各狀態(tài)復位
{
acount = 0;
nacount = 0;
fcount1= 0;
count2 = 0;
count3 = 0;
count4 = 0;
r_sec = 0;
r_min = 0;
r_hor = 0;
a_sec = 0;
a_min = 0;
a_hor = 0;
Buffer[0] = 0;
Buffer[1] = 0;
Buffer[2] = 0;
Buffer[3] = 0;
SPI_Flash_Write(Buffer,FLASH_SIZE-100,SIZE);
}
if(t!=calendar.sec) //更新屏幕顯示
{
t = calendar.sec;
OLED_ShowNum(12,16,r_hor,4,16);
OLED_ShowNum(68,16,r_min,2,16);
OLED_ShowNum(104,16,r_sec,2,16);
OLED_ShowNum(12,32,a_hor,4,16);
OLED_ShowNum(68,32,a_min,2,16);
OLED_ShowNum(104,32,a_sec,2,16);
OLED_ShowNum(12,48,hcur1,3,16);
OLED_ShowNum(44,48,lcur1,1,16);
OLED_ShowNum(80,48,hcur2,3,16);
OLED_ShowNum(112,48,lcur2,1,16);
OLED_Refresh_Gram();
}
}
}
復制代碼
以上代碼下載:
過欠壓過流檢測設備.rar
(348.49 KB, 下載次數(shù): 23)
2021-9-2 21:45 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
heicad
時間:
2021-9-8 18:03
這個是用的什么傳感器?原理圖能分享一下嗎?
作者:
徒步千里
時間:
2021-11-20 14:37
分享整套學習下 謝謝
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1