#include <p30f2010.h> //เปิดใช้งานไลบรารี dspic30F2010
#include<uart.h> //เปิดใช้งานไลบรารี uart เพื่อส่งข้อมูลแบบ RS-232
#include<stdio.h> //เปิดใช้งานไลบรารีการแปลงข้อมูล
_FOSC(CSW_FSCM_OFF & XT); // โหมดการทำงาน แบบ XT คริสตอล 4 - 10 MHz ไม่มี PLL
_FWDT(WDT_OFF); //ปิดการทำงาน watchdog Timer
void _ISR _U1TXInterrupt(void) // Interrupt โมดูล uart TX
{
IFS0bits.U1TXIF = 0; //Clear register TX เป็น 0
}
void _ISR _U1RXInterrupt(void) // Interrupt โมดูล uart RX
{
IFS0bits.U1RXIF = 0; //Clear register RX เป็น 0
}
void uart1_init() //ฟังก์ชั่นสำหรับ set โมดูล uart
{
unsigned int baudvalue;
unsigned int U1MODEvalue;
unsigned int U1STAvalue;
CloseUART1();
ConfigIntUART1(UART_RX_INT_DIS &UART_RX_INT_PR6 &UART_TX_INT_EN &
UART_TX_INT_PR2);
baudvalue = 11; // baudvalue=
U1MODEvalue = UART_EN &UART_IDLE_CON &UART_RX_TX &UART_DIS_WAKE &
UART_DIS_LOOPBACK &UART_DIS_ABAUD &UART_NO_PAR_8BIT &
UART_1STOPBIT;
U1STAvalue = UART_INT_TX_BUF_EMPTY &UART_TX_PIN_NORMAL & UART_TX_ENABLE &UART_INT_RX_3_4_FUL & UART_ADR_DETECT_DIS &UART_RX_OVERRUN_CLEAR;
OpenUART1(U1MODEvalue, U1STAvalue, baudvalue);
}
int main(void)
{
char buffer[6]; //ประกาศตัวแปรชื่อ buffer แบบตัวอัษร ขนาด 6 ตัวอักษร
unsigned int value = 0; //ประกาศตัวแปรชื่อ value = 0 แบบจำนวนเต็มบวก 16 bits
uart1_init(); //เปิดการใช้งานฟังก์ชั่น uart1_init
while(1)
{
value++;
sprintf(buffer,"VALUE : %d\r\n",value);
putsUART1((unsigned int *)buffer);
}
return 0;
}
ค่าตัวแปร value จะเท่ากับ 0 เพิ่มขึ้นที่ละ 1 จนถึง 65535 คือ แปลงข้อมูลจากจำนวนเต็มเป็นตัวอักษรด้วยฟังก์ชัน sprint เพื่อที่จะส่งข้อมูลการผ่าน RS-232 ออก Hyperterminal ฟังก์ชัน putsUART1