Перейти к содержанию

g00d5

Members
  • Постов

    5
  • Зарегистрирован

  • Посещение

Электроника

  • Стаж в электронике
    Менее года

Посетители профиля

964 просмотра профиля

Достижения g00d5

Новичок

Новичок (1/14)

  • Неделя на форуме
  • Месяц на форуме
  • Год на форуме

Последние значки

0

Репутация

  1. Всем привет, не мог бы кто нибудь подсказать как работают пару строк в коде? Сам код #include "stm32_p407.h" //Файл конфигурации отладочой платы STM32-P407 #include "lcd.h" // ПОДПРОГРАММА КОНФИГУРИРОВАНИЯ РАЗРЯДА ПОРТА PB1 void PF8_Init(void); void tekznach(int); void PF8_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; //Структура конфигурации портов общего назначения RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); //Разрешение тактирования порта GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; //Маска на выходной разряд GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; //Режим: вывод GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; //Задание быстродействия (2MHz, 25MHz, 50MHz, 100MHz) GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //Установка типа выходного каскада: двухтактный GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; //Подтягивающий резистор: нет GPIO_Init(GPIOB, &GPIO_InitStructure); //Функция конфигурирования } uint16_t Channel_table[8]={0xB678, 0xAAAA, 0xCCCC, 0xE38E, 0x5555, 0x3333, 0x2222, 0x1111}; int i=1, n=0; //счетчик uint16_t joy, indic; //Код от джойстика, код для вывода на индикаторы //--------------------------------------------------------------------------- // ГЛАВНАЯ ФУНКЦИЯ int main() { //Инициализация органов управления STM_PBInit(BUTTON_TAMPER, BUTTON_MODE_GPIO); //Кнопка TAMPER STM_PBInit(BUTTON_WAKEUP, BUTTON_MODE_GPIO); //Кнопка WAKEUP STM_PBInit(BUTTON_RIGHT, BUTTON_MODE_GPIO); //Позиции джойстика STM_PBInit(BUTTON_LEFT, BUTTON_MODE_GPIO); STM_PBInit(BUTTON_UP, BUTTON_MODE_GPIO); STM_PBInit(BUTTON_DOWN, BUTTON_MODE_GPIO); STM_PBInit(BUTTON_SEL, BUTTON_MODE_GPIO); //Инициализация дисплея LCD_Init(); LCD_Clear(0); LCD_FontSize(13); // Конфигурирование разряда PF8 на вывод PF8_Init(); //Цикл в основной программе while (1) { //Проверка воздействия на кнопку WAKEUP, при нажатии - выход из цикла //if (STM_PBGetState(BUTTON_WAKEUP)) break; if (STM_PBGetState(BUTTON_LEFT)) { n=1; tekznach(n); } if (STM_PBGetState(BUTTON_UP)) { n=2; tekznach(n); } if (STM_PBGetState(BUTTON_RIGHT)) { n=3; tekznach(n); } if (STM_PBGetState(BUTTON_DOWN)) { n=4; tekznach(n); } if ((STM_PBGetState(BUTTON_TAMPER)==0) && (STM_PBGetState(BUTTON_LEFT))) { n=5; tekznach(n); } if ((STM_PBGetState(BUTTON_TAMPER)==0) && (STM_PBGetState(BUTTON_UP))) { n=6; tekznach(n); } if ((STM_PBGetState(BUTTON_TAMPER)==0) && (STM_PBGetState(BUTTON_RIGHT))) { n=7; tekznach(n); } if ((STM_PBGetState(BUTTON_TAMPER)==0) && (STM_PBGetState(BUTTON_DOWN))) { n=8; tekznach(n); } } //Сброс процессора - завершение выполнения данной программы, запуск начального загрузчика NVIC_SystemReset(); } //--------------------------------------------------------------------------- void tekznach(n) { LCD_TextPos(1,3); LCD_print(" Канал %d ", n); for (i=0; i<16; i++) { indic=(Channel_table[n]<<i & 0x8000); if (indic==0) { STM_LEDOn(LED4); Delay_ms(30); } else { STM_LEDOff(LED4); Delay_ms(30); } } STM_LEDOff(LED4); } ////------------------------------------------------------------------------- uint16_t Channel_table[8]={0xB678, 0xAAAA, 0xCCCC, 0xE38E, 0x5555, 0x3333, 0x2222, 0x1111}; if ((STM_PBGetState(BUTTON_TAMPER)==0) && (STM_PBGetState(BUTTON_LEFT))) LCD_TextPos(1,3); LCD_print(" Канал %d ", n); for (i=0; i<16; i++) { indic=(Channel_table[n]<<i & 0x8000); if (indic==0)
×
×
  • Создать...