會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客



« 1 (2) 3 »


Re: PIC16F877使用方法[驅動方式]
新會員
註冊日期:
4月21日 19:42:17
所屬群組:
註冊會員
文章: 18
等級: 2; EXP: 97
HP : 0 / 49
MP : 6 / 83
離線
我加那兩行我的編譯器會錯誤

附加檔案:



jpg  2018-04-29 (8).jpg (106.59 KB)
72914_5ae5a9e3d54f2.jpg 979X512 px

4月29日 19:18:15
轉換PDF檔 列印


Re: PIC16F877使用方法[驅動方式]
新會員
註冊日期:
4月21日 19:42:17
所屬群組:
註冊會員
文章: 18
等級: 2; EXP: 97
HP : 0 / 49
MP : 6 / 83
離線
我加那兩行我的編譯器會錯誤

附加檔案:



jpg  2018-04-29 (8).jpg (106.59 KB)
72914_5ae5a9e3d54f2.jpg 979X512 px

4月29日 19:18:15
轉換PDF檔 列印


Re: PIC16F877使用方法[驅動方式]
資深會員
註冊日期:
2007/11/05 08:29
所屬群組:
註冊會員
文章: 229
等級: 14; EXP: 14
HP : 0 / 328
MP : 76 / 10594
離線
是 ANSEL 不是 ANSEL0

4月29日 19:45:34
轉換PDF檔 列印


Re: PIC16F877使用方法[驅動方式]
新會員
註冊日期:
4月21日 19:42:17
所屬群組:
註冊會員
文章: 18
等級: 2; EXP: 97
HP : 0 / 49
MP : 6 / 83
離線
是的,我的編譯器在windows跟Linux.環境下加入ansel都會出現錯誤sdcc我已經在發問了

4月29日 20:25:31
轉換PDF檔 列印


Re: PIC16F877使用方法[驅動方式]
資深會員
註冊日期:
2007/11/05 08:29
所屬群組:
註冊會員
文章: 229
等級: 14; EXP: 14
HP : 0 / 328
MP : 76 / 10594
離線
有點奇怪 你的 pic16f887.h 沒有 define ANSEL 嗎?


extern __at
(0x0188) __sfr ANSEL;

4月29日 21:59:07
轉換PDF檔 列印


Re: PIC16F877使用方法[驅動方式]
新會員
註冊日期:
4月21日 19:42:17
所屬群組:
註冊會員
文章: 18
等級: 2; EXP: 97
HP : 0 / 49
MP : 6 / 83
離線
好像是,我晚點查看一下在外面你可以給我.h檔案嗎?

4月29日 22:10:41
轉換PDF檔 列印


Re: PIC16F877使用方法[驅動方式]
資深會員
註冊日期:
2007/11/05 08:29
所屬群組:
註冊會員
文章: 229
等級: 14; EXP: 14
HP : 0 / 328
MP : 76 / 10594
離線
你可能要注意一下 你到底是用 877 還是 887

我看你 include pic16f887.h 我以為是 887, 你如果是用 877 你的 include 檔 要改一下

877 則不用 ANSEL , ANSELH 而是用

ADCON1 = 0x06; //ALL digital I/O

還有你那 _CONFIG1 要改成 _CONFIG

_MCLRE_ON 也不用

4月29日 22:36:28
轉換PDF檔 列印


Re: PIC16F877使用方法[驅動方式]
新會員
註冊日期:
4月21日 19:42:17
所屬群組:
註冊會員
文章: 18
等級: 2; EXP: 97
HP : 0 / 49
MP : 6 / 83
離線
我是用877原來我include錯檔案,難怪都怪怪的,但這樣還是不能run編譯器沒問題了。

我現在的程式碼是這樣子的
---------------------
#include<pic16f877.h>
#include<stdint.h>
static __code char __at (_CONFIG) configword1=_FOSC_HS & _WDT_OFF ;
//__code char __at (_CONFIG2) configword2=_BOR40V;
void delay_ms(unsigned int a);
void _sdcc_gsinit_startup(void)
{
__asm pagesel _main __endasm;
__asm goto _main __endasm;
}
int b=1000;
void main(void)
{
ADCON1=0x06;
TRISA=0x00;
TRISB=0x00;
while(1)
{
PORTA=0x00;
delay_ms(200);
PORTA=0xFF;
dlelay_ms(200);
}
}
void delay_ms(unsigned int a)
{
volatile int delay_ms_flag=0;
for(;a!=0;)
{
if(delay_ms_flag==0)
{
for(int i=0;i<=4000;i++)
delay_ms_flag=1;
}
else
{
a--;
delay_ms_flag=0;
}
}
}

但依舊不能動作 我有嘗試IO可以點亮 但我希望他可以動作閃燈

4月29日 23:36:27

Cnyntg927 於 2018年04月30日 00:10:52
Cnyntg927 於 2018年04月30日 00:11:25
轉換PDF檔 列印


Re: PIC16F877使用方法[驅動方式]
資深會員
註冊日期:
2007/11/05 08:29
所屬群組:
註冊會員
文章: 229
等級: 14; EXP: 14
HP : 0 / 328
MP : 76 / 10594
離線
不知道還有哪裡有問題
但是 你第二個 delay_ms 拼錯了 dlelay_ms...

有沒有可能 HEX 檔 是舊的

++: 你可以試試不要閃 用 PORTA = 0x00 和 PORTA = 0xFF 看是不是一個會亮 一個不會亮.. 如果沒有錯 再調整 delay_ms 的值

另外 我看你的電路圖 你那LED 沒有串聯電阻... 電流有可能超過容許的範圍(25mA)

4月30日 00:42:59
轉換PDF檔 列印


Re: PIC16F877使用方法[驅動方式]
新會員
註冊日期:
4月21日 19:42:17
所屬群組:
註冊會員
文章: 18
等級: 2; EXP: 97
HP : 0 / 49
MP : 6 / 83
離線
抱歉,手誤沒key 好 但我確定這個函示庫可以執行。然後我燒錄也測試IO似乎可以動作,但我不確定是不是正常。很奇怪的是有時候要等一下子才看的到結果,然後好像每次電源重新開機都會有不同結果,我在想是不是哪裡還有設定沒設定到 或是燒錄器、編譯器有問題? 我是把IO設成PORTA=0xAA和PORTA=0x55;測試發現LED都有動作,另外電阻的問題我沒考慮會有影響嗎?還有其實我對configure bit有點不太熟悉 到底在設定什麼有哪邊可以參考嗎? 感謝大大

4月30日 10:26:14
轉換PDF檔 列印



« 1 (2) 3 »



無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結

網頁捷徑
2018 Winter Elite 報名
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project