Lab1. Test


#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