• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::


Browsing this Thread:   1 Anonymous Users






Re: C18這樣使用I/O為何會誤動作?
#6
高級會員
高級會員


查看用戶資訊
OUT 可以 , INPUT 就不可以喔

有些低階的PIC ,像是 16C5X 沒有 WRITE LATCH
所以還是要把他研究一下

發表於: 2006/7/6 14:17
微電腦自動控制設計,產品製造
才疏學淺,若有錯誤敬請指正
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: C18這樣使用I/O為何會誤動作?
#5
資深會員
資深會員


查看用戶資訊
果然ok了....
謝謝,再研究看看
是否代表以後都用latch取代port就ok了呢?

發表於: 2006/7/6 13:15
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: C18這樣使用I/O為何會誤動作?
#4
高級會員
高級會員


查看用戶資訊
將 PORTD 改成 LATD 試試看

IF OK 就是我上面說的問題
這個問題不單是加入NOP就可以解決
把那篇文章看清楚研究一下
要用PIC這個問題不可不知道

發表於: 2006/7/6 12:30
微電腦自動控制設計,產品製造
才疏學淺,若有錯誤敬請指正
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: C18這樣使用I/O為何會誤動作?
#3
資深會員
資深會員


查看用戶資訊
依你的方法,每個有I/O指令再加一個Nop();
結果依然不行.......

懷疑是否c18的問題....但沒有其它版本可以試

發表於: 2006/7/6 12:07
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: C18這樣使用I/O為何會誤動作?
#2
高級會員
高級會員


查看用戶資訊
應該是 READ MODIFY WRITE 的問題

輸出一個BIT的指令他會先讀回 整個PORT的DATA再 輸出

參考這個
http://www.microchip.com.tw/tip5.htm

發表於: 2006/7/6 11:54
微電腦自動控制設計,產品製造
才疏學淺,若有錯誤敬請指正
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


C18這樣使用I/O為何會誤動作?
#1
資深會員
資深會員


查看用戶資訊
以下是我寫的程式,不解的是當我設了RD1或RD2的I/O之後
原來RD3的輸出HIGH都跟著降為LOW,把自己做的板子換成
APP001之後,換掉原來452的IC改成同樣的458IC
換寫法1,寫法2結果一樣,請問我這樣控I/O不對嗎?


#include <p18cxxx.h>
#include <spi.h>
#include <capture.h>
#include <delays.h>


#define SPI_CS1 PORTDbits.RD2
#define SPI_CS2 PORTDbits.RD1

unsigned char angle_data[5];
unsigned int angle1,angle2;
void main()
{
int option = 1;


TRISDbits.TRISD1 = 0; //Output
TRISDbits.TRISD2 = 0; //Output
TRISDbits.TRISD3 = 0; //Output

PORTDbits.RD3 = 1; // Set mode of AS5045 to high speed mode


while(1)
{

// Delay1KTCYx(18);// 4.5 msec with 8 MHz CRYSTAL clock

Nop();
Nop();

// PORTD = PORTD & 0xf9; //寫法1
PORTDbits.RD1 = 0; //寫法2
PORTDbits.RD2 = 0;

// PORTDbits.RD3 = 1; // Set mode of AS5045 to high speed mode
Nop();
Nop();

Nop();
Nop();

}


發表於: 2006/7/6 11:38
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------