|
轉出燒錄檔問題
|
||||
|---|---|---|---|---|
|
高級會員
![]() |
我想問用MAPLAB X IDE 編輯好程式後,配置(config)要怎麼內建在hex檔裡呢?
我自己試燒好像都沒問題 但寄給供應商後,代燒錄來的config有時會是初始配置,必須再給個config文件給他修改。 我提供的檔案是dist\default\production裡的HEX檔
發表於: 2022/6/13 16:32
|
|||
|
||||
|
Re: 接收串列傳輸數據
|
||||
|---|---|---|---|---|
|
高級會員
![]() |
謝謝大佬,確實是中斷互相蓋過導致。
我將一些不用即時處理的程式移到主迴路就可以了。 謝謝各位大佬的指導
發表於: 2022/4/15 16:51
|
|||
|
||||
|
Re: 接收串列傳輸數據
|
||||
|---|---|---|---|---|
|
高級會員
![]() |
謝謝大佬,儲存數據這部分OK了。
我發現我抓取的Data會亂跳,但是波形在視波器顯示都滿穩的 SLK與SDA 我用RA2做SLK引腳,IOC上緣觸發中斷,而RA4上緣觸發則是在RA2為於高位時數值重新指向低位。用ICD3 Debug監測每一RUN的數值都不一樣= = void User_RA2_ISR(void) { if(IO_RA4_PORT) { cn = 1; } else cn = 0; Alldata = Alldata | ( (cn & 0x01) << j ); if(j < 23)j++; } void User_RA4_ISR(void) { if(IO_RA2_PORT && j == 23 ) { j = 0; Value.AllMsg = (0x0fff & Alldata); FlagReg1.Minus_FLAG = ((Alldata >> 20) & 0x01); Alldata = 0; } }
發表於: 2022/4/13 14:40
|
|||
|
||||
|
Re: 接收串列傳輸數據
|
||||
|---|---|---|---|---|
|
高級會員
![]() |
對,我想問Bit排列寫入的方法,是類似下面這樣,把數值依序放入a0~a7這樣
ByteValue1就可以直接提取16進制的數值嗎? struct ByteValue1 { unsigned a0 : 1 ; unsigned a1 : 1 ; unsigned a2 : 1 ; unsigned a3 : 1 ; unsigned a4 : 1 ; unsigned a5 : 1 ; unsigned a6 : 1 ; unsigned a7 : 1 ; }; 另一個問題是我想用每次CLK觸發時,用迴圈填入數據,但是bit形式的陣列是怎麼宣告呢? if(j<23) {a[ j ] = Data;} else j = 0; 沒找到這類範例的關鍵字,厚顏來請各位老哥提點:D
發表於: 2022/4/12 16:11
|
|||
|
||||
|
接收串列傳輸數據
|
||||
|---|---|---|---|---|
|
高級會員
![]() |
各位好, 小弟想用PIC16LF1823接收一組24個bit的串列數據,數據是一個20bit的數值,後4位是符號位。
目前是用char tb[23]陣列儲存起來,但要加總時就變得相當麻煩,想問看看該怎麼簡化呢?
發表於: 2022/4/12 10:04
|
|||
|
||||
|
Re: UART傳輸與接收問題
|
||||
|---|---|---|---|---|
|
高級會員
![]() |
感謝Dark大跟版大的回覆
真的是TX程式的問題,多加一行while(!TXSTAbits.TRMT);,問題就改善了。 又學到一課,太棒了
發表於: 2021/2/8 8:24
|
|||
|
||||
|
UART傳輸與接收問題
|
||||
|---|---|---|---|---|
|
高級會員
![]() |
各位好:
我使用兩個PIC16F1823要做UART傳輸,丟一筆三位數的資料, 並用七段顯示器顯示數值 我有把百位,十位,各位,拆開來用ASCll傳輸 我遇到的問題是, 當數值從299 要跳到300時 有時數值會偶爾出現 200 或399, 感覺只有其中一兩個位數先變化 尤其在有干擾源的情況下狀況更嚴重, 我已經在接收端增加許多限制避免漏收就讀出,但狀況依然沒有完全改善 9600 8bit TX:(放在主程式的While迴圈) while(1) { Speed_V = Speed_Command; uart_tb[0] = 0xA5; uart_tb[1] = (Speed_V/100) +'0'; uart_tb[2] = ((Speed_V/10)%10) +'0'; uart_tb[3] = (Speed_V%10)+'0'; uart_tb[4] = Er_F +'0'; uart_tb[5] = 0x0D; EUSART_Write(uart_tb[k]); if(k++ == 5) { //Speed; k = 0; } } RX:(用中斷接收) void User_UART_ISR(void) { while (EUSART_DataReady) { if(FlagReg1.Uart_FLAG == 0) { value = EUSART_Read(); if(value = 0xA5) { FlagReg1.Uart_FLAG = 1; k = 0; } } else { value = EUSART_Read(); uart_tb[k] = value; k++; if(k==5 && value == 0x0D) { if(uart_tb[0] >= 0x30 && uart_tb[1] >= 0x30 && uart_tb[2] >= 0x30) { Speed_S = (uart_tb[0]-'0') *100 + (uart_tb[1]-'0') *10 + (uart_tb[2]-'0'); Speed_Value = Speed_S * 1; } uart_tb[0] = 0; uart_tb[1] = 0; uart_tb[2] = 0; FlagReg1.Uart_FLAG = 0; } } } }
發表於: 2021/2/2 11:03
|
|||
|
||||
|
UART不共地的接線方式
|
||||
|---|---|---|---|---|
|
高級會員
![]() |
大家好,因原本在使用UART通訊是將兩個共地的MCU做傳輸,接線方式是
4C線(Vcc,gnd,RX(TX),TX(RX)) 這次想將兩組有各自電源供應的MCU做通訊,這樣RX與TX之間是不是需要加光藕器做電源隔離呢?或者與其他裝置連線時,電路是否需要做隔離設計 謝謝。
發表於: 2020/6/10 14:17
|
|||
|
||||
|
交流電流偵測-換算均方根
|
|
|||
|---|---|---|---|---|
|
高級會員
![]() |
發表於: 2020/1/2 11:49
|
|||
|
||||