Re: 小程式的狀態變遷圖
|
||||
---|---|---|---|---|
高級會員
|
我是有寫過程式流程圖給客戶,裡面包含硬體mode的切換時,mcu的對應處理程序!狀態變遷圖第一次聽到,是譯名的問題嗎?
發表於: 2008/2/19 9:43
|
|||
|
FreeRTOS applied in PIC18F
|
||||
---|---|---|---|---|
高級會員
|
Dear 版主,
我發現FreeRTOS(免費的os KERNEL),有針對PIC18F452的KERNEL讓使用者免費使用。想請問有相關應用範例或AN可以參考嗎? freeRTOS link: http://www.freertos.org Thanks very much.
發表於: 2008/2/5 15:05
|
|||
|
Re: PIC18F452 I2C slave mode相關設定
|
||||
---|---|---|---|---|
高級會員
|
(1).還是要設定,設一下SSPSTAT Register的SAMPLE BIT看看你是要STANDARD 或HIGH SPEED MODE。
(2).slave mcu的ACK會自動產生不用回!! 中斷是一定要的,只要是通訊的接收幾乎都要用中斷去實現,不然你根本不知何時資料會進來,只能苦苦的polling。 (3).這時侯的ACK是由MASTER產生,也決定的MASTER是不是已收完資料了。至於SLAVE有沒有辦法硬體偵測這MASTER發出的ACK就不清楚了(再麻煩版主了)。
發表於: 2008/1/30 20:45
|
|||
|
Re: ICD2 在Programmer正常,在Debugger就有問題
|
||||
---|---|---|---|---|
高級會員
|
參考這份官方文件看看:Header Board Specification,裡面有介紹header的電路。
Microchip有些mcu確實沒有debuger的電路在裡面,所以沒有辦法用icd2去做debug。當你用header做debug時,是不需要16F628A,直接用header mcu代替它。 這問題我也卡過一次!!
發表於: 2008/1/28 16:29
|
|||
|
Re: 關於 CAN BUS 的 ID 問題
|
||||
---|---|---|---|---|
高級會員
|
請參考看看!!
Q1:CANReceiveMessage(&RX_ID1,RX_Data_Buf1,&RX_Data_Len1,&RX1_Message_Flag ) ; ,在 RX_ID1 前面有一個 &,是什麼意思? A1:你必須先看此函數的PROTYPE: BOOL CANReceiveMessage(unsigned long *id, BYTE *Data, BYTE *DataLen, enum CAN_RX_MSG_FLAGS *MsgFlags) 很清楚傳入的ARGUMENTS必須為位址。當你呼叫此函數去得到CAN MODULE的CAN MESSAGE你必須先建立一塊記憶體去存放這些資料(EX.id,data(8 bytes),length)。&RX_ID1的意思就是將收到的id放到你建立的RX_ID1 變數裡。 Q2:簡單說,我想要知道如何設定我每一個的 ID 是什麼,好讓我可以傳出資料,也知道哪一個要去讀他 A2:設定自己的ID就是設定CAN RECEIVE BUFFER的FILTERS及MASKREGISTER。至於丟出什麼ID就不用再有FILTER的動作了。
發表於: 2008/1/25 11:06
|
|||
|
Re: 急件 拜託
|
||||
---|---|---|---|---|
高級會員
|
在mcu動作前有一些硬體設定是可以讓user去自訂的。
例如ocillator你可以採用外部crystal oscillator,也可以在成本考量下採用mcu built in的RC oscillator。這些都是manufacture無法幫你決定的,所以你必須在configure bits中設定。datasheet後面都有介紹,寫程式的人一定要先看過才行。
發表於: 2008/1/24 13:34
|
|||
|
Re: 請問 hex檔裡是否已有包含 Configuration Bits設定?
|
||||
---|---|---|---|---|
高級會員
|
若你沒有將configure bits的設定寫在程式裡,那麼你產生的hex就不可能含configure bits。
你可以參考官方的這份文件,裡面有說明的很清楚"PIC Microcontroller Configuration Bits DN009"
發表於: 2008/1/23 15:18
|
|||
|
Re: 請教一下這個函數裡的指標用法
|
||||
---|---|---|---|---|
高級會員
|
引數即程式呼叫函數時放入函數參數列的數值,必須注意資料型態得一致。
1).例如先宣告const char* str="hello world!"; 再呼叫 lcd_puts(str); ,你可以上面兩步驟看成lcd_puts("hello world!"); 2).放在rom! 3).*s 這個意思是指標變數 s 所指向的內容是嗎? A:是的!!
發表於: 2008/1/22 18:00
|
|||
|
Re: 請教一下這個函數裡的指標用法
|
||||
---|---|---|---|---|
高級會員
|
參考看看!!
問題一: (a).void lcd_puts(const char * s) 這樣的宣告是什麼意思?為什麼要用 const 這個保留字? Sol(a):表示傳入此函數(void lcd_puts)的引數為字串。 const 是表示此資料在初始化後內容就不會再被改變了。一般linker會將此變數放在mcu的flash rom。 問題二: while(*s)<---這個指令的意思是不是當指標的內容不為零時就持續while迴圈? Sol(b):對!為零表示字串的所有字元都已經送出去給uart了! 問題三: SEND_CHARC(*s++);<---請問這行指令是把指標的內容還是位址加1然後傳到 SEND_CHARC 函數? Sol(c):將位址(s)的內容丟出去,在進行位址+1的動作。
發表於: 2008/1/22 12:18
|
|||
|