int main() { WDTCTL = WDTPW + WDTHOLD; // Stop WDT Clock_Init(0,0,0,1); // 1M DCO Drive_Init(0, 100); LCD5110_Init(); LCD5110_Write_String(0,0,LCD_BUFFER1); _EINT(); while(1) { if(SPEED_DISPLAY_FLAG == 1) { SPEED_DISPLAY_FLAG = 0; SPEED_L = Drive_Speed_L(); SPEED_R = Drive_Speed_R(); LCD5110_Long2char(SPEED_L / 5); LCD5110_Write_String(0,1,LCD5110_BUFFER); LCD5110_Long2char(SPEED_R / 5); LCD5110_Write_String(0,2,LCD5110_BUFFER); } } }
int main() { WDTCTL = WDTPW + WDTHOLD; // Stop WDT Clock_Init(0,0,0,12); // 12M DCO TimerB_ConMode_Init(2, 4); // 3M的持续计数模式. LCD5110_Init(); LCD5110_Write_String(0,0,LCD_BUFFER1); Drive_UTL_Init(); _EINT(); while(1) //间隔1s 进行一次超声波测距 { ULT_TRIG1; DELAY_US(30); ULT_TRIG0; DELAY_MS(300); Drive_UTL_DISTANCE(); UTL_START_TIME = 0; LCD5110_Long2Char(UTL_BUFFER); LCD5110_Write_String(0,1,0); UTL_FLAG = 0; } }
void main() { WDTCTL = WDTPW + WDTHOLD; Clock_Init(0,0,0,CPU_FF); // 12M DCO LCD5110_Init(); LCD5110_Write_String(0,0,LCD_MAIN_BUFFER1); LCD5110_Write_String(0,1,LCD_MAIN_BUFFER2); LCD5110_Write_String(0,2,LCD_MAIN_BUFFER3); LCD5110_Write_String(0,3,LCD_MAIN_BUFFER4); LCD5110_Write_String(0,4,LCD_MAIN_BUFFER5); MPU6050_Init(); while(1) { MPU6050_AccelX(); LCD5110_Long2Char(MPU6050_AX); LCD5110_Write_String(18,0,0); MPU6050_AccelY(); LCD5110_Long2Char(MPU6050_AY); LCD5110_Write_String(18,1,0); MPU6050_AccelZ(); LCD5110_Long2Char(MPU6050_AZ); LCD5110_Write_String(18,2,0); MPU6050_Angle_XZX(); MPU6050_Angle_YZY(); LCD5110_Long2Char(MPU6050_ANGLE_XZX); LCD5110_Write_String(18,3,0); LCD5110_Long2Char(MPU6050_ANGLE_YZY); LCD5110_Write_String(18,4,0); /* MPU6050_AnguX(); LCD5110_Long2Char(MPU6050_GX); LCD5110_Write_String(18,3,0); MPU6050_AnguY(); LCD5110_Long2Char(MPU6050_GY); LCD5110_Write_String(18,4,0); MPU6050_AnguZ(); LCD5110_Long2Char(MPU6050_GZ); LCD5110_Write_String(18,5,0); */ DELAY_MS(500); } }
__interrupt void ADC12ISR (void) { temp = ADC12MEM0; LCD5110_Long2Char(temp); LCD5110_Write_String(0,1,0); temp = ADC12MEM1; LCD5110_Long2Char(temp); LCD5110_Write_String(0,2,0); }
__interrupt void ADC12ISR (void) { temp = ADC12MEM0; temp = ADC12_Result_2_5(temp); temp = ADC12_T(temp); LCD5110_Long2char(temp); LCD5110_Write_String(0,1,LCD5110_BUFFER); }
uint32_t testSRAM(uint32_t startAddress, uint32_t size, uint16_t bufferSize) { uint16_t check; uint32_t loop; char AddressLine[24] = "Addr:xxxxxxxx : yyyyy \r\n"; PSRAM_Init(); LCD5110_Set_XY(0, 2); LCD5110_Write_String("Addr : "); for (loop = startAddress; loop < startAddress + size; loop++) { PSRAM_WriteWord((uint16_t) loop, loop); check = PSRAM_ReadWord(loop); if ((loop & 0xFFF) == 0x0) { LCD5110_Set_XY(7, 2); LCD5110_Write_Dec32(loop, 7); getHexFromLong(AddressLine + 5, loop, 8); getDecimalFromShort(AddressLine + 16, check, 5); SerialSendBytes(AddressLine, 24); } if ((uint16_t) loop != check) { WriteReadStatus++; break; } } if (WriteReadStatus == 0) { LCD5110_Set_XY(0, 2); LCD5110_Write_String("RAM Ok. "); LCD5110_Set_XY(0, 3); LCD5110_Write_String("Size :"); LCD5110_Set_XY(7, 3); LCD5110_Write_Dec(size >> 9, 4); LCD5110_Set_XY(11, 3); LCD5110_Write_String(" Ko"); } else {
void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop watchdog Clock_Init(0,0,0,CPU_FF); // 1M DCO, 9K VLO ACLK LCD5110_Init(); LCD5110_Write_String(0,0,(char*)LCD_BUFFER1); P6SEL = 0x03; // Enable A/D channel inputs ADC12CTL0 = ADC12ON + MSC + SHT0_8; // Turn on ADC12, extend sampling time // to avoid overflow of results ADC12CTL1 = SHP + CONSEQ_3; // Use sampling timer, repeated sequence ADC12MCTL0 = INCH_0; // ref+=AVcc, channel = A0 ADC12MCTL1 = INCH_1 + EOS; // ref+=AVcc, channel = A1, end seq. ADC12IE = 0x02; // Enable ADC12IFG.3 ADC12CTL0 |= ENC; // Enable conversions ADC12CTL0 |= ADC12SC; // Start convn - software trigger _BIS_SR(LPM0_bits + GIE); // Enter LPM0, Enable interrupts }
void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop watchdog Clock_Init(0,0,0,1); // 1M DCO, 9K VLO ACLK P1OUT = 0x00; // Clear P1 P1DIR = 0x01; // P1.0 as output LED. LCD5110_Init(); LCD5110_Write_String(0,0,(char*)LCD_BUFFER1); ADC12_Init(3,1,2,7); // smclk, /1, 单通道序列采样, 采样保持时间2^7 adcclk. ADC12_Sample_Source(1, 1); // TimeA.out 触发采样,采样定时器控制采样 ADC12_Set_VREF2_5(); // 2.5V参考电压开启 ADC12_MCTL(0, 1, 10); // 内存单元0开启温度传感器通道A10, 参考电压选择VREF+. ADC12_Enable((BIT0)); //内存单元中断,存放值以后是否中断. ADC12_ENC; TACCTL1 = OUTMOD_4; // Toggle on EQU1 (TAR = 0) TACTL = TASSEL_2 + MC_2; // SMCLK, cont-mode _EINT(); while(1); }
void main() { WDTCTL =WDTPW + WDTHOLD; Clock_Init(4,4,0,CPU_FF); CJMCU_INIT(); LCD5110_Init(); _EINT(); //必须开中断 DELAY_MS(3000); CJMCU_Aline(); //自动校准 LCD5110_Long2Char(CJMCU_YAW_OFFSET); LCD5110_Write_String(0,0,0); LCD5110_Long2Char(CJMCU_PITCH_OFFSET); LCD5110_Write_String(0,1,0); LCD5110_Long2Char(CJMCU_ROLL_OFFSET); LCD5110_Write_String(0,2,0); DELAY_MS(3000); while(1) { CJMCU_START(); //只读取一次。每次读取数据时都要调用该函数 while(CJMCU_RCV_FLAG==0); CJMCU_GET_VALUE(&yaw, &pitch, &roll); LCD5110_Long2Char(yaw); LCD5110_Write_String(0,0,0); LCD5110_Long2Char(pitch); LCD5110_Write_String(0,1,0); LCD5110_Long2Char(roll); LCD5110_Write_String(0,2,0); DELAY_US(10); } // Enable USCI_A0 RX interrupt }
/** * @brief HY-STM32 board test * @param None * @retval None */ int main(void) { /* Set Systick to 1 ms */ if (SysTick_Config(SystemCoreClock / 1000)) while (1) ; SystemTicks = 0; NVIC_InitStructure.NVIC_IRQChannel = SysTick_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); /* GPIOF Periph clock enable */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE); /* Configure PF6 as output (state LED) */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN; GPIO_Init(GPIOF, &GPIO_InitStructure); LCD5110_init(); LCD5110_Led(0); LCD5110_Set_XY(0, 0); LCD5110_Write_String("HY32 Test"); initUART4(115200); SerialSetCallBack((callBack) ProcessSerialInput); SerialSendBytes("Hello\r\n", 7); //WriteReadStatus = testNOR(0x10000, 0x100, 0x100); //WriteReadStatus = testSRAM(0, 0x400000, 0x1000); //testDS18B20(); testDS1307(); if (WriteReadStatus == 0) { blink = 500; /* Ok */ } else { blink = 100; /* Ko */ } while (1) { Delay_ms(blink); GPIO_ToggleBits(GPIOF, GPIO_Pin_6); if (GPIO_ReadOutputDataBit(GPIOF, GPIO_Pin_6) == 0) { LCD5110_Set_XY(0, 5); LCD5110_Write_String("- - - - - - - "); } else { LCD5110_Set_XY(0, 5); LCD5110_Write_String(" - - - - - - -"); } if (tempInterval & 0x1) { DS1307ReadTime(&currDate); DS1307GetTimeString(&currDate, timeBuffer); LCD5110_Set_XY(0, 3); LCD5110_Write_String(timeBuffer); DS1307GetDateString(&currDate, timeBuffer); LCD5110_Set_XY(0, 4); LCD5110_Write_String(timeBuffer); } if (++tempInterval == 120) { testDS18B20(tempBuffer); LCD5110_Write_String(tempBuffer); DS1307GetDateString(&currDate, timeBuffer); SerialSendBytes(timeBuffer, 8); SerialSendBytes(" ", 1); DS1307GetTimeString(&currDate, timeBuffer); SerialSendBytes(timeBuffer, 8); SerialSendBytes(" ", 1); tempBuffer[11] = 0x0D; tempBuffer[12] = 0x0A; SerialSendBytes(tempBuffer, 13); tempBuffer[11] = 0x00; tempInterval = 0; } } }