|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
簡(jiǎn)單而奇怪的問(wèn)題(有關(guān)AVR的IO口),請(qǐng)各位朋友賜教 |
| 作者:joylight 欄目:單片機(jī) |
在下為了試試一片MEGA16是否好用,編了一個(gè)讓PC0口每隔3妙轉(zhuǎn)換高低電平的小程序。主要部分如下: #include <avr/io.h> while(1) { SET_Pc0; delay_s(30);//百毫秒延時(shí) CLR_Pc0; delay_s(30); } 硬件部分PC0接發(fā)光二極管接200歐電阻再接GND,用5V供電。 奇怪的是發(fā)光二極管居然不亮,用萬(wàn)用表測(cè)PC0電壓,發(fā)現(xiàn)并不是0和5V交替出現(xiàn),而是0和1.7V交替出現(xiàn)。電阻上幾乎沒(méi)壓降,即電路中沒(méi)電流。 改了一下程序,去掉CLR_Pc0;,令PC0總是輸出5V,這次發(fā)光二極管亮了。 不知道為什么?想到應(yīng)該是IO內(nèi)的問(wèn)題,可能是上拉什么的,請(qǐng)高手指教。 |
| 2樓: | >>參與討論 |
| 作者: bugcat 于 2005/11/30 22:23:00 發(fā)布:
是不是延遲太短了? 是不是延遲太短了?另外IO一般用低有效(IO口接燈負(fù)級(jí))來(lái)控制燈比較好,直接輸出高電平時(shí)的驅(qū)動(dòng)電流應(yīng)該不大 |
|
| 3樓: | >>參與討論 |
| 作者: joylight 于 2005/11/30 23:43:00 發(fā)布:
補(bǔ)充一下 補(bǔ)充一下,PC0我已經(jīng)置成輸出了。程序DDRC=0x01; TO:bugcat PC0口接燈負(fù)極我也試過(guò)了,結(jié)果是PC0在5到3.5之間交替,無(wú)法輸出0V,所以無(wú)法點(diǎn)亮燈。 PC0一直輸出5V可以點(diǎn)亮燈,證明驅(qū)動(dòng)電流已經(jīng)夠了。 延時(shí)3秒也足夠了。 |
|
| 4樓: | >>參與討論 |
| 作者: wenzhigang 于 2005/12/1 22:03:00 發(fā)布:
用下面的程序試一下 while(1) { PORTB^=0X01; delay_s(30); } |
|
| 5樓: | >>參與討論 |
| 作者: hotpower 于 2005/12/1 22:08:00 發(fā)布:
暈車藥 M16L的PC0應(yīng)該是TWI的時(shí)鐘信號(hào)SCL,是否是運(yùn)行在I2C方式下了??? 給你開(kāi)個(gè)暈車藥一試: TWCR &= ~(1 << TWEN); #include <avr/io.h> DDRC=0x01; TWCR &= ~(1 << TWEN);//加入藥片 while(1) { SET_Pc0; delay_s(30);//百毫秒延時(shí) CLR_Pc0; delay_s(30); } |
|
| 6樓: | >>參與討論 |
| 作者: joylight 于 2005/12/1 22:43:00 發(fā)布:
RE:hotpower IO口默認(rèn)是作為通用IO使用,我沒(méi)有改變默認(rèn)值,TWEN默認(rèn)就是0,應(yīng)該沒(méi)有啟動(dòng)I2C。 是否有其它意見(jiàn)呢? 我想問(wèn)題應(yīng)該出現(xiàn)在硬件上,要么是IO內(nèi)的上拉或引腳的電容,要么是發(fā)光二極管的功率問(wèn)題,具體也不太清楚,希望能集思廣益。 |
|
| 7樓: | >>參與討論 |
| 作者: hotpower 于 2005/12/1 23:00:00 發(fā)布:
改用低電平驅(qū)動(dòng)發(fā)光二極管試試 一般工控不主張用高電平控制設(shè)備. |
|
| 8樓: | >>參與討論 |
| 作者: 南方的老樹 于 2005/12/1 23:59:00 發(fā)布:
是的,因?yàn)楦蓴_產(chǎn)生瞬間的高電平 |
|
| 9樓: | >>參與討論 |
| 作者: joylight 于 2005/12/2 9:51:00 發(fā)布:
無(wú)意冒犯(回帖之前要看貼) to:hotpower,低電平我已經(jīng)試過(guò)了,見(jiàn)從上數(shù)第三個(gè)貼。 to:南方的老樹,能不能詳細(xì)說(shuō)明一下。干擾來(lái)自哪里?如何避免,我用的是面包板飛線。 |
|
| 10樓: | >>參與討論 |
| 作者: 南方的老樹 于 2005/12/2 11:22:00 發(fā)布:
拿示波器看看延時(shí)是否3S? 再去掉負(fù)載看看波形;還有,200歐姆的電阻小了,換成是1K或者2K試試看 |
|
| 11樓: | >>參與討論 |
| 作者: qjy_dali 于 2005/12/2 16:16:00 發(fā)布:
大家看著的地方也許不是出問(wèn)題的地方 一個(gè)系統(tǒng)要正常運(yùn)行,不只是程序,還有硬件,比如,電路是否焊好了,哪個(gè)點(diǎn)有沒(méi)有接錯(cuò)。 看不到全部,所以很難說(shuō)。僅從程序來(lái)看,有沒(méi)有其它地方也在用這個(gè)IO口呢?如果沒(méi)有,八成最后是一個(gè)讓大家都暈倒的原因... |
|
| 12樓: | >>參與討論 |
| 作者: DEF 于 2005/12/3 6:30:00 發(fā)布:
大哥你用的是什么編譯器啊? 可能是延時(shí)程序被編譯器優(yōu)化掉了 你用AVRSTDIO跟蹤一下延時(shí)程序 可能輸出的是一個(gè)快速方波. |
|
| 13樓: | >>參與討論 |
| 作者: xiaobu 于 2005/12/3 17:38:00 發(fā)布:
不要懷疑其他的東西 1、換IO試試,初步確定軟件編譯結(jié)果有沒(méi)有問(wèn)題 2、換一塊單片機(jī)試試, 3、看看編譯的匯編文件 4、再去看手冊(cè),仔細(xì)復(fù)用功能 |
|
| 14樓: | >>參與討論 |
| 作者: joylight 于 2005/12/3 19:17:00 發(fā)布:
已經(jīng)解決了(無(wú)理頭) 謝謝各位朋友的真知灼見(jiàn)。 我昨天又試了一下,二極管可以正常閃爍了。沒(méi)有做任何修改。很無(wú)理頭的,希望大家不要暈倒。 還想請(qǐng)教一個(gè)問(wèn)題,IO默認(rèn)為輸入引腳,如果不去更改它,是不是用萬(wàn)用表測(cè)該引腳會(huì)得到一個(gè)任意的值。 |
|
| 15樓: | >>參與討論 |
| 作者: hotpower 于 2005/12/3 19:35:00 發(fā)布:
真是暈帖呀...我被暈倒了
|
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |