找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1740|回復(fù): 5
收起左側(cè)

單片機(jī)的電平變化中斷為什么要讀端口

[復(fù)制鏈接]
ID:146878 發(fā)表于 2023-3-1 15:51 | 顯示全部樓層 |閱讀模式
很多8位單片機(jī),比如PIC的,端口電平變化中斷,可以用來做中斷和喚醒單片機(jī)?催^好多家的歷程在設(shè)置中斷前要讀一次相應(yīng)端口。
但是我試過不讀也能工作。那么這個(gè)讀一下的目的是什么,不讀有什么隱患?
回復(fù)

使用道具 舉報(bào)

ID:1045628 發(fā)表于 2023-3-2 11:27 | 顯示全部樓層
沒用過8位的,但按32位的單片機(jī),某些中斷信號(hào)是可以由不同的端口觸發(fā)的,為了確定是哪個(gè)口觸發(fā),一般讀一下
回復(fù)

使用道具 舉報(bào)

ID:996773 發(fā)表于 2023-3-2 15:02 | 顯示全部樓層
我對(duì)中斷使用不是很熟悉,有個(gè)疑問,既然外部中斷已經(jīng)發(fā)生了,說明端口處已經(jīng)低電平或者

高電平觸發(fā)過了,甚至上升沿觸發(fā)過了,再去讀端口狀態(tài)已經(jīng)晚了,早就一瞬間過去了,還能讀到啥?
回復(fù)

使用道具 舉報(bào)

ID:1045628 發(fā)表于 2023-3-2 16:54 | 顯示全部樓層
hi等你 發(fā)表于 2023-3-2 15:02
我對(duì)中斷使用不是很熟悉,有個(gè)疑問,既然外部中斷已經(jīng)發(fā)生了,說明端口處已經(jīng)低電平或者

高電平觸發(fā)過了 ...

比如有兩個(gè)端口A,B,正常狀態(tài)都是低電平,共用一個(gè)中斷向量,但是兩個(gè)口功能不一樣,都設(shè)置為上升沿觸發(fā),當(dāng)中斷觸發(fā)的時(shí)候,你就需要讀一下哪個(gè)端口處于高電平,就是他觸發(fā)的,再去執(zhí)行他的功能;當(dāng)然,如果芯片提供了類似 中斷標(biāo)志寄存器 的寄存器,那讀標(biāo)志會(huì)好很多;類似STM32 的外部中斷10~15一共6個(gè)都是用的同一個(gè)中斷向量
回復(fù)

使用道具 舉報(bào)

ID:935919 發(fā)表于 2023-3-3 14:33 | 顯示全部樓層
很多8位單片機(jī) 在IO口變化的時(shí)候都會(huì)誤觸發(fā)(比如設(shè)置下降沿觸發(fā), 結(jié)果上升沿也觸發(fā)了), 增加電平檢測(cè)是為了防止誤觸發(fā). 另外在IO高頻變化的時(shí)候, 也有一定的濾波作用.
回復(fù)

使用道具 舉報(bào)

ID:965189 發(fā)表于 2023-3-3 14:43 | 顯示全部樓層
讀電平可以防止外部脈沖干擾形成觸發(fā)。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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