//***************************************************** // sprint文によるキャラクタ液晶表示のテスト // // 液晶関数は、個別機能のソースを、プロジェクトに登録 // する方法(岩田さんオリジナル) // 512ポイントFFT用の回転因子表示プログラムが // 動かない。その調査のため実施。 // // LCD unlook busy : not switch direction (write fixed) // // CPU dsPIC30F4013 // 7.37MHz Internal RC oscillator, 16x PLL enabled // Fcy=7.37MHzx16/4=29.48MHz, Tcy=33.92ns // // 2016/4/19 N.Ishii //***************************************************** #include #include #include "xlcd.h" #include // configuration _FWDT(WDT_OFF); _FGS(CODE_PROT_OFF); _FOSC(CSW_FSCM_OFF & FRC_PLL16); _FBORPOR(PBOR_OFF & PWRT_64 & MCLR_EN); // data char msgStart[]={"TEST START!!\0"}; // 追加 // Main routine int main(void) { fractcomplex Twid[ 256 ]; int bn=0; int ButtonOn = 0; char msg1[]={"XXXXXXXXXXXXXXXX\0"}; // port init ADPCFG = 0xFFFF; // Set ADPCFG: RB Port is All Digital Pin TRISB=0x01FF; TRISD= 0; LATDbits.LATD0= 1; // LCD init OpenXLCD(FOUR_BIT & TWO_LINE & SEG1_50_SEG51_100 & COM1_COM16); // turn on WriteCmdXLCD(DON & CURSOR_OFF & BLINK_OFF); SetDDRamAddr(0x00); PutsXLCD(msgStart); // スタートメッセージ追加 160329 //LATDbits.LATD0= 0; // debug led on //while(1); TwidFactorInit(9, Twid, 0); // main loop while(1) { sprintf(msg1, "real[%02d]=%04X", bn, Twid[bn].real); SetDDRamAddr(0x00); PutsXLCD(msg1); sprintf(msg1, "imag[%02d]=%04X", bn, Twid[bn].imag); SetDDRamAddr(0x40); PutsXLCD(msg1); if(PORTBbits.RB0 == 0) { // SW1 is ON ButtonOn++; } if(ButtonOn == 9) { ButtonOn = 0; if(bn == 512/2-1) bn = 0; else bn++; } } }