|

楼主 |
发表于 2023-12-8 22:30:54
|
显示全部楼层
稍等啊,坛子相当不稳定,我这开的各种乱码
- float GetAcFreq(void)
- {
- // Measure AC-Freq. with Module "AcFreq"
- // Ret= Freq(Hz) / -1:AC-Offline
- // Algorithm:
- // a. Check L-H-L-H level, if not exist, then RET(-1)
- // b. Measure time during 5-cycles
- // c. Calc Freq in Hertz
- // a. Check L-H-L-H level, Tovf= 50ms+50ms
- if(pulseIn(ACFQ_PIN, HIGH, 50000)==0)
- {
- return -1.0f;
- }
- if(pulseIn(ACFQ_PIN, LOW, 50000)==0)
- {
- return -1.0f;
- }
- // b. Measure time of 5-cycles
- uint32_t tm[6]= {0};
- for(uint8_t i=0; i<=5; i++)
- {
- // Wait for (L)-H-L
- while(ACFQ_ISL); // Wait for L-H
- while(ACFQ_ISH); // Wait for H-L
- // Save Timestamp [url=home.php?mod=space&uid=3057940]@[/url] H-L
- tm[i]= micros();
- }
-
- // c. Do calc
- uint32_t dur= tm[5]-tm[0];
- return dur>0? 5e6f/dur : -1.0f;
- }
复制代码 |
|