一個(gè)整數(shù)發(fā)出的SOS信號(hào)

SOS來自于國(guó)際摩爾斯電碼,它表示求救信號(hào),摩爾斯電碼為...---...?;疽?guī)則為三短三長(zhǎng)三短,手電發(fā)射信號(hào)遵守這個(gè)規(guī)則即可,下面的時(shí)間間隔規(guī)則可以不用太在意。
最近研發(fā)的激光槍瞄手電需要新加一個(gè)求救信功能,so,簡(jiǎn)單研究了一下關(guān)于SOS,下面是我歸納的內(nèi)容:
|-------------------分割線---------------------|
1:摩爾斯電碼符號(hào)點(diǎn)和線,1個(gè)點(diǎn)持續(xù)的時(shí)間為一個(gè)單位時(shí)間,1個(gè)線持續(xù)的時(shí)間為點(diǎn)持續(xù)時(shí)長(zhǎng)的三倍。
2:符號(hào)之間時(shí)間間隔一般為1個(gè)單位時(shí)間,例如點(diǎn)與點(diǎn)之間需要停頓1個(gè)單位時(shí)間。
3:字母之間時(shí)間間隔,S與O之間的時(shí)長(zhǎng)一般為3個(gè)單位時(shí)長(zhǎng)。
4:詞和詞之間的時(shí)間間隔,2個(gè)SOS信號(hào)之間的間隔時(shí)間一般為7個(gè)時(shí)間單位。
根據(jù)上述規(guī)則可以得到如下的一個(gè)序列:
10101+000+111011101110+000+10101+0000000
將這個(gè)序列存入一個(gè)64位整數(shù)就可以得到閃燈的規(guī)則,其中1亮燈,0滅燈,解析順序從高位開始到低位結(jié)束。
到這里不知道各位看官,看懂沒,沒看懂的話,看下序列的解析:
10101 (點(diǎn)停頓點(diǎn)停頓點(diǎn)停頓)這一串表示 S
000 字母間隔
11101110111 三個(gè)1表示一個(gè)線0表示停頓 這一串表示O
000 字母間隔
10101 (點(diǎn)停頓點(diǎn)停頓點(diǎn)停頓)這一串表示 S
0000000 詞間隔
序列總長(zhǎng)度34(N),從高到低依次取出序列的第N位,每取出一位,操作Led管腳一次,計(jì)時(shí),完成后取出N-1,如此往復(fù),34次結(jié)束后就是一個(gè)SOS信號(hào)組合。
下面是簡(jiǎn)單的代碼:
|--------------------------|
[code 語言C]
/#define SHIFT 34
int64_t SOS = 0x2A3BB8A80;//sos的亮滅序列
int perTime = 200;//單位時(shí)間
int shift_len = 34;
int timerCount = 0;//時(shí)間間隔計(jì)數(shù)

//function需要每1毫秒執(zhí)行一次STM32f1單片機(jī)有系統(tǒng)函數(shù)SysTick_Handler(),這個(gè)函數(shù)是每1ms執(zhí)行一次
void function()
{
if(timerCount == 0)
{
shift_len--;
//取位
uint8_t status = SOS >> shift_len;
status = status & 1;
//控制LED
if(status == 1)
{
//亮燈
Led_ON();
}
else
{
//關(guān)燈
Led_OFF();
}
}
if(timerCount++ > perTime)
{
timerCount = 0;
}
if(shift_len == 1)
{
shift_len = SHIFT;
timerCount = 0;
}
}
[code]
|--------------------------|
代碼不重要,主要是使用一個(gè)整數(shù)來表示SOS燈光變化的序列這一思路很絕妙。
小伙伴們,如果是你,你怎么實(shí)現(xiàn)呢?歡迎評(píng)論,留言,指正。謝謝大家!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容