user−n1−OK.c


// Microchip USB C18 Firmware Version 1.2
/* ************************************************************************** */
#include <p18cxxx.h>
#include "system\typedefs.h"
#include "system\usb\usb.h"
#include "io_cfg.h"            // io pin mapping
#include "user\user.h"
#include "user\temperature.h"
/* ************************************************************************** */
#pragma udata
char input_buffer[64];
char output_buffer[64];
/* ************************************************************************** */

/* ************************************************************************** 
**
** File name = user-n1-ok.c
**
** 2011/12/09 copy from 電子工作のテスト工場
**           [USB内蔵PIC PIC18F2550MCHPFSUB Framework ]
**                      プログラム例 より
**           http://amahime.main.jp/picusb/main.php?name=picusb
**
**  RC0〜RC2にLEDを取り付け
**  キーボードから0〜2を入力するとLED0〜LED2の点灯、消灯を切り替える
**  かつ、RC0=Chenge〜RC2=Chengeを出力する
**
**    2011/12/09(金) ビルド完了
**    2011/12/11(日) 予想のとおり動作した。完了
**
** ************************************************************************** */
#pragma code
void UserInit(void){
    TRISA = 0;
    TRISB = 0X01;
    TRISC = 0;
    LATA  = 0;
    LATB  = 0;
    LATC  = 0;
} // end UserInit
void ProcessIO(void){
    // User Application USB tasks
    if(( usb_device_state < CONFIGURED_STATE ) || (UCONbits.SUSPND==1)) return;

    if(getsUSBUSART(input_buffer,64)){
	switch(input_buffer[0]) {
	    case '0':
		LATCbits.LATC0 = !LATCbits.LATC0 ;
		if(mUSBUSARTIsTxTrfReady()) putrsUSBUSART("RC0=Chenge\r\n");
		break;
	    case '1':
		LATCbits.LATC1 = !LATCbits.LATC1 ;
		if(mUSBUSARTIsTxTrfReady()) putrsUSBUSART("RC1=Chenge\r\n");
		break;
	    case '2':
		LATCbits.LATC2 = !LATCbits.LATC2 ;
		if(mUSBUSARTIsTxTrfReady()) putrsUSBUSART("RC2=Chenge\r\n");
		break;
	    default:
		if(mUSBUSARTIsTxTrfReady()) putrsUSBUSART("NG\r\n");
		break;
	} // end switch
    } // end if
} // end ProcessIO