找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3429|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

單片機紅外線接收問題-stm8s208開發(fā)板的程序移植到stm8s003就不行了

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:388929 發(fā)表于 2021-7-5 22:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
大家好,我有個stm8s208開發(fā)板,紅外接收的程序是NEC協(xié)議的,按原程序移植到stm8s003就不行了,得到的現(xiàn)象是定時器2的計算時間好奇怪,我通過外部中斷來開始計數(shù),下次中斷關(guān)閉計數(shù),正常計數(shù)值在一萬3左右,移植到STMS003后,數(shù)值從十幾到幾萬的都有,請問有沒有人遇到過這樣的問題的呢,同樣的程序在開發(fā)板里是正常得很的。。。。
先謝謝各位
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:123289 發(fā)表于 2021-7-6 08:38 | 只看該作者
1、先弄清楚紅外編碼原理。
2、再弄清成功的程序是如何解碼的。
3、移植后的程序與原程序比,在什么地方,解碼參數(shù)發(fā)生了改變?
回復(fù)

使用道具 舉報

板凳
ID:887202 發(fā)表于 2021-7-6 09:13 | 只看該作者
首先你的外部中斷觸發(fā)方式是什么呢?上升沿還是下降沿?定時器計數(shù)值在一萬三左右,那么這個一萬三代表的時間是多少呢,移植以后測到的時間是多少呢?這個跟你的定時器的計數(shù)頻率有關(guān)系,首先去檢查你移植前的程序時怎么解碼的,相關(guān)的具體時間時多少,那么你移植以后要保持這個時間不變,就要注意定時器的頻率問題了,頻率不同,計數(shù)一萬三所代表的時間也就不同,解碼就容易出問題,不明白可以私聊我
回復(fù)

使用道具 舉報

地板
ID:388929 發(fā)表于 2021-7-6 09:55 | 只看該作者
yzwzfyz 發(fā)表于 2021-7-6 08:38
1、先弄清楚紅外編碼原理。
2、再弄清成功的程序是如何解碼的。
3、移植后的程序與原程序比,在什么地方 ...

你好,我弄清楚原理的,也知道原程序是如何解碼的,移植后的程序有以下的不同,外部中斷的引腳改了,中斷處理改了,時鐘是一樣的內(nèi)部時鐘16MHz,我主程序什么都沒改。。。
回復(fù)

使用道具 舉報

5#
ID:388929 發(fā)表于 2021-7-6 09:59 | 只看該作者
我這是外部下降沿中斷,16MHz內(nèi)部分頻16,每次計數(shù)1us,13500就是13.5ms,相當于NEC協(xié)議里的頭碼時長,正常都在13500上下波動,現(xiàn)在我移植之后就變到十幾至5萬多之前波動。。。。我整了兩三個星期了都沒看出問題點,實在沒招了才來問問大家,希望大家能給點思路該怎么去查這個問題點在哪
回復(fù)

使用道具 舉報

6#
ID:123289 發(fā)表于 2021-7-6 10:27 | 只看該作者
既然清楚原理,也可以自己寫,這個并不是太難的。測量脈沖的寬度,解出0、1,再組裝一下,也就成了。
這里有個兩個要點:
1、就是如何界定0、1,需要給個允錯范圍,即1=什么到什么范圍內(nèi)?0=同理。
2、脈沖的起點與終點,計時不能受干擾。需要仔細規(guī)劃一下。
回復(fù)

使用道具 舉報

7#
ID:388929 發(fā)表于 2021-7-6 15:35 | 只看該作者
yzwzfyz 發(fā)表于 2021-7-6 10:27
既然清楚原理,也可以自己寫,這個并不是太難的。測量脈沖的寬度,解出0、1,再組裝一下,也就成了。
這里 ...

我也在想是不是計時器是不是受干擾了,甚至懷疑是不是優(yōu)先級的問題,總是計時不準
回復(fù)

使用道具 舉報

8#
ID:161164 發(fā)表于 2021-7-6 16:14 | 只看該作者
STM不熟,你又不上代碼
軟件方面:
外部中斷的引腳設(shè)對了嗎?
中斷處理設(shè)對了嗎?
時鐘頻率設(shè)對了嗎?
分頻設(shè)對了嗎?
有試過用最簡單的代碼去產(chǎn)生一個固定頻率的方波嗎?

硬件方面
電路畫對了嗎?
有沒有空焊?
電源穩(wěn)定嗎?
回復(fù)

使用道具 舉報

9#
ID:388929 發(fā)表于 2021-7-6 21:12 | 只看該作者
我現(xiàn)在發(fā)現(xiàn)了是中斷的問題,紅外接收腳我單獨用外部中斷去控制一個燈時,用手摸那個紅處接收頭的供電腳竟然能觸發(fā)燈亮。。。。這到底是靈敏呢還是有干擾。。。
回復(fù)

使用道具 舉報

10#
ID:161164 發(fā)表于 2021-7-6 22:21 | 只看該作者
billaj 發(fā)表于 2021-7-6 21:12
我現(xiàn)在發(fā)現(xiàn)了是中斷的問題,紅外接收腳我單獨用外部中斷去控制一個燈時,用手摸那個紅處接收頭的供電腳竟然 ...

腳浮空了,加上拉電阻吧
回復(fù)

使用道具 舉報

11#
ID:517951 發(fā)表于 2021-7-8 12:00 | 只看該作者
兩個系統(tǒng)用的晶振是不是一樣? 紅外接收對時序有要求的, 晶振不同,還有單片機系統(tǒng)設(shè)置不一樣,會導(dǎo)致接收時序差異較大,導(dǎo)致接收失敗
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表