void Device_init() { gpio_init(PTC11,GPI,1); //拨码开关5 gpio_init(PTC12,GPI,1); //拨码开关4 gpio_init(PTC13,GPI,1); //拨码开关3 gpio_init(PTC15,GPI,1); //拨码开关2 gpio_init(PTD2,GPI,1); //拨码开关1 gpio_init(PTD1,GPO,1); //三个指示灯依次亮起 gpio_init(PTD3,GPO,1); gpio_init(PTD4,GPO,1); //每进入一次初始化PTD4灯灭,初始化完成亮起 gpio_init(PTC5,GPO,1); gpio_init(PTC4,GPI,0); //干簧管 FTM_PWM_init(FTM1,FTM_CH0,50,angle_to_period(0)); //舵机初始化,从百分之十占空比到百分之七十占空比测试 FTM_PWM_init(FTM0,FTM_CH1,10000,0); //电机pwm初始化 FTM_PWM_init(FTM0,FTM_CH2,10000,0); //FTM_PWM_init(FTM2,FTM_CH0,3000000,93000); //编码器初始化 //FTM_PWM_init(FTM2,FTM_CH1,3000000,93000); FTM_QUAD_Init(FTM2); //初始化为正交解码 LCD_Init(); PIT_init(); gpio_set(PTD4,1); }
//начало основной программы void main(void) { CPUinit(); //инициализация системы PIT_init(); //инициализация PIT LCDinit_clear(); //нач инициализация и сброс ЖКИ // Вывод на ЖКИ начальной заставки lcd_pro_data('L', 0); lcd_tek_data('c'); lcd_tek_data('d'); lcd_tek_data('_'); lcd_tek_data('k'); lcd_tek_data('n'); lcd_tek_data('o'); lcd_tek_data('p'); lcd_tek_data('_'); lcd_tek_data('p'); lcd_tek_data('_'); lcd_tek_data('S'); lcd_tek_data('R'); lcd_tek_data('A'); lcd_tek_data('M'); //начало основного цикла for (;;) { if (flagn_kn1==1) // нажималась ли кнопка 1 { flagn_kn1=0; //да, сбросить флаг нажатия //смена состояния выхода светодиода LED1 if (led1_old_state==OFF) { AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED1); // зажечь сетодиод 1 led1_old_state=ON; } else { AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED1); // погасить светодиод 1 led1_old_state=OFF; } // Вывод на ЖКИ заставки - слова "Привет!" lcd_pro_data(rus_P, 64); lcd_tek_data('p'); lcd_tek_data(rus_i); lcd_tek_data(rus_v); lcd_tek_data('e'); lcd_tek_data(rus_t); lcd_tek_data('!'); } if (flagn_kn2==1) // нажималась ли кнопка 2 { flagn_kn2=0; //да, сбросить флаг нажатия //смена состояния выхода светодиода LED2 if (led2_old_state==OFF) { AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED2); // зажечь сетодиод 2 led2_old_state=ON; } else { AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED2); // погасить светодиод 2 led2_old_state=OFF; } // Вывод на ЖКИ слова "Privet!" lcd_pro_data('P', 72); lcd_tek_data('r'); lcd_tek_data('i'); lcd_tek_data('v'); lcd_tek_data('e'); lcd_tek_data('t'); lcd_tek_data('!'); } if (flagn_kn3==1) // нажималась ли кнопка 3 { flagn_kn3=0; //да, сбросить флаг нажатия //смена состояния выхода светодиода LED3 if (led3_old_state==OFF) { AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED3); // зажечь сетодиод 3 led3_old_state=ON; } else { AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED3); // погасить светодиод 3 led3_old_state=OFF; } lcd_clear(); //очистка ЖКИ } if (flagn_kn4==1) // нажималась ли кнопка 4 { flagn_kn4=0; //да, сбросить флаг нажатия //смена состояния выхода светодиода LED4 if (led4_old_state==OFF) { AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED4); // зажечь сетодиод 4 led4_old_state=ON; } else { AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED4); // погасить светодиод 4 led4_old_state=OFF; } lcd_init(); //инициализация ЖКИ } } }