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

論壇索引


Board index » All Posts (ode0219)




array[16]如何轉換城array1[8]、array2[8]?
#1
新會員
新會員


pic18會從rf端收進16byte的data,我將之宣告array[16]。
然後先將前八個byte送入i2c,然後再送後八個byte。
除了
for(i=0;i<=7;i++)
{
swwriteri2c(array[i]);
swack();
}
這方法外,是否還有透過指標的方式的更有效率的方法?
小弟我太久沒寫code了,希望有大大能指點我。

發表於: 2007/11/8 1:45
頂部


Re: 請問版大,關於C語言的Bootloader
#2
新會員
新會員


Dear 版大,
我也要學學! 請您寄給我!tks

ode0219@yahoo.com.tw

發表於: 2007/10/19 14:26
頂部


uart的問題
#3
新會員
新會員


各位兄台:
我現在有關於rs232接收的問題,我針對Datasheet上的uart模組做設定,但是卻不會動作!!
因此想問問各位先進,是否小弟我哪裡做錯呢?

這個程式是利用rs232從pc端傳送ascii給dspic,然後dspic看是收到哪個按鍵,在選擇亮甚麼led:

謝謝各位兄台的幫忙!!!!

void InitGPIO(void);
void InitUART1(void);
unsigned int InChar(void) ;
//---------------------------------------------------------------------------
unsigned int RxValue;


//***************************************************************************
//*Program Start
//***************************************************************************
void main(void)
{
InitUART1(); // Initialize UART1
InitGPIO();

while(1) // repeat forever
{
RxValue=InChar();
if (RxValue == '1'){ PORTD = 0x000E; }
else if (RxValue == '2'){ PORTD = 0x000C; }
else if (RxValue == '3'){ PORTD = 0x0008; }
else if (RxValue == '4'){ PORTD = 0x0000; }
else if (RxValue == '5'){ PORTD = 0x000A; }
else if (RxValue == '6'){ PORTD = 0x0005; }
else if (RxValue == 0x0000){ PORTD = 0x0004; }
} // end of while forever*/

} // end of main program
//***************************************************************************
//*Initialize
//***************************************************************************
void InitGPIO(void)
{
TRISA = 0xFFFF; // make RA all inputs for SW1-SW4
TRISD = 0x0000; // make RD all output
PORTD = 0x0000;
}
void InitUART1(void)
{
unsigned int baudvalue;
unsigned int U1MODEvalue;
unsigned int U1STAvalue;

CloseUART1();
ConfigIntUART1(
UART_RX_INT_EN & UART_RX_INT_PR6 &
UART_TX_INT_DIS & UART_TX_INT_PR2
);

U1MODEvalue = UART_EN & UART_IDLE_CON &
UART_DIS_WAKE & UART_EN_LOOPBACK &
UART_EN_ABAUD & UART_NO_PAR_8BIT &
UART_1STOPBIT;
U1STAvalue = UART_INT_TX_BUF_EMPTY &
UART_TX_PIN_NORMAL &
UART_TX_ENABLE & UART_INT_RX_CHAR &
UART_ADR_DETECT_DIS &
UART_RX_OVERRUN_CLEAR;


// The BAUDRATE = 9600, FCY is already defined so use
// it as "FCY". Plug into the formula provided in the slides

baudvalue = 48; //FCY/(16*BAUDRATE) - 1 initialize the variable baudvalue
OpenUART1(U1MODEvalue, U1STAvalue, baudvalue);
}

//************************************************************************
//*Uart polling Function
//************************************************************************
unsigned int InChar(void)
{
/**********************************************
* Function: POLLING LOOP * *
**********************************************/
do{

}while(!IFS0bits.U1RXIF);
IFS0bits.U1RXIF=0;
return(U1RXREG);
}

發表於: 2004/12/13 15:29
頂部


Re: pic10f206的問題
#4
新會員
新會員


謝謝這位高人指點,我的確疏忽比較器的設定。

發表於: 2004/11/19 9:28
頂部


pic10f206的問題
#5
新會員
新會員


各位前輩!!
我現在因為幾個案子會用到PIC10F206,因此先試玩一下這顆
IC,但是我碰到一些問題,因此想拿出來跟大家討論!!

以下是我寫的簡單DEMO 程式:
list p=10f206
#include <P10F206.inc>

;****************************************************************
;Initialize GPIO & 10f206 & OSC
;****************************************************************


DelayCounter1 equ 0x10
DelayCounter2 equ 0x11
;*****************************************************************
;Program start
;*****************************************************************
org 0x00 ; reset vector
nop ; Reserve for MPLAB-ICD
Initialize:
clrf GPIO
movlw b'00000000'
TRIS GPIO
movlw b'01111110'
movwf OSCCAL
goto main
;--Delay Function--------------------------------------------------
pDelay1ms:
movlw .198
movwf DelayCounter1
nop
nop
tagDelay1ms_01:
nop
nop
decfsz DelayCounter1, F
goto tagDelay1ms_01
retlw 0x00

pDelay250ms:
movlw .250
movwf DelayCounter2
tagDelay250ms_01:
call pDelay1ms
decfsz DelayCounter2, F
goto tagDelay250ms_01
retlw 0x00

;--Main-----------------------------------------------------------
main:
;call pDelay250ms
NOP
movlw b'00000111'
movwf GPIO
;call pDelay250ms
NOP
movlw b'00000000'
movwf GPIO
goto main

END
此程式組譯會過,MPLAB SIM的GPIO的值也是我要的,但是
當我把PIC10F206燒好放在板子上時,GPIO0,1,2所接的LED
燈卻不會動作,因此我想請教大家可能是拿裡出問題呢?
我用電錶量gpio0,1,2只有0.4V但是gpio3卻有5V
這該如何是好呢??
謝謝大家

發表於: 2004/11/17 15:42
頂部






:::

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... ]

教育訓練中心

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