Artos5 0 21 июля, 2013 Опубликовано 21 июля, 2013 · Жалоба глобальная переменная. Декремент смотреть в прерывании системного таймера объявлена в main.c (как вы ищите - непонятно) Переменную нашел в мейн . Теперь не найду где выполняется декремент.. Все, нашел! Урааааааааа! :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andries5 0 21 июля, 2013 Опубликовано 21 июля, 2013 · Жалоба Все по своим отдельным файлам, не люблю когда все в одном в виде каши. Думаю так удобнее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Artos5 0 21 июля, 2013 Опубликовано 21 июля, 2013 · Жалоба Все по своим отдельным файлам, не люблю когда все в одном в виде каши. Думаю так удобнее. А скажите пожалуйста, с какой частотой происходит прерывание системного таймера? И как например задействовать void TIM17_IRQHandler(void) { } Это прерывание? Достаточно вбить туда переменную? Подозреваю, что нужны еще дополнительные телодвижения :) Посмотрел даташит на МК, и я просто в шоке :) Такая куча возможностей!!! Таймеров дофига и всего прочего :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andries5 0 21 июля, 2013 Опубликовано 21 июля, 2013 · Жалоба А скажите пожалуйста, с какой частотой происходит прерывание системного таймера? И как например задействовать void TIM17_IRQHandler(void) { } Это прерывание? Достаточно вбить туда переменную? Подозреваю, что нужны еще дополнительные телодвижения :) Прерывание системного таймера происходит согласно указанию SysTick_Config(SystemCoreClock / 1000); //1ms Если делить на 10000, то будет 0.1ms. Здесь можно изменить значение по своему усмотрению, в пределах возможного. В Keil нажав правую кнопку на непонятной переменной или функции, выбираете в меню "Go To Definition Of '...' " и попадаете в место ее определения. Очень удобно. Да это прерывание, Прерывание Timer17 и для этого сначала нужно проинициализировать таймер, включить режим прерываний и так далее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Artos5 0 21 июля, 2013 Опубликовано 21 июля, 2013 (изменено) · Жалоба Прерывание системного таймера происходит согласно указанию SysTick_Config(SystemCoreClock / 1000); //1ms Если делить на 10000, то будет 0.1ms. Здесь можно изменить значение по своему усмотрению, в пределах возможного. В Keil нажав правую кнопку на непонятной переменной или функции, выбираете в меню "Go To Definition Of '...' " и попадаете в место ее определения. Очень удобно. Да это прерывание, Прерывание Timer17 и для этого сначала нужно проинициализировать таймер, включить режим прерываний и так далее. Спасибо Вам за помощь! Буду дальше пробовать разбираться :) А сколько времени происходит вход в прерывание и его выполнение а потом выход из него? Изменено 21 июля, 2013 пользователем Artos5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andries5 0 21 июля, 2013 Опубликовано 21 июля, 2013 · Жалоба А сколько времени происходит вход в прерывание и его выполнение а потом выход из него? Когда отладку включал с платой на stm32f103 через JTAG отладчик, то видел время каждого шага. Сейчас на этой плате не знаю. Я сам только учусь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Artos5 0 21 июля, 2013 Опубликовано 21 июля, 2013 · Жалоба Бедаааа.... отвалился программатор. Не хочет шить . Выскакивает ошибка: "No target connected" Хотя программатор видется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 21 июля, 2013 Опубликовано 21 июля, 2013 · Жалоба Чем шьёшь? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Artos5 0 21 июля, 2013 Опубликовано 21 июля, 2013 · Жалоба stm32f0discovery Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 21 июля, 2013 Опубликовано 21 июля, 2013 · Жалоба Я имел в виду на компе из кейла шьёшь? Попробуй ST-шную утилиту - http://www.st.com/web/en/catalog/tools/PF258168#header поставить. Только кейл перед этим закрой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Artos5 0 21 июля, 2013 Опубликовано 21 июля, 2013 (изменено) · Жалоба Я имел в виду на компе из кейла шьёшь? Попробуй ST-шную утилиту - http://www.st.com/web/en/catalog/tools/PF258168#header поставить. Только кейл перед этим закрой. Блин... закрыл Кейл. Запустил СТ Линк. И он отказывается дружить с программатором... все равно не видит программатор. Хотя система видит устройство прекрасно. Начал шить СТ Линк, после шаманства... Поставил в настройках Connect under reset. Что то не могу вкурить что это произошло... кейл по прежнему отказывается шить... Теперь Кейл пишет такую херню: flash download failed - Target DLL has been canсelled Что то СТМ начинает тошнить :) Что ему то не хватает?! Изменено 21 июля, 2013 пользователем Artos5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andries5 0 21 июля, 2013 Опубликовано 21 июля, 2013 · Жалоба В свойствах проекта, на вкладке Utilites, в св-вах St-Link (settings), выбран STM32F05x Flash? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Artos5 0 21 июля, 2013 Опубликовано 21 июля, 2013 · Жалоба В свойствах проекта, на вкладке Utilites, в св-вах St-Link (settings), выбран STM32F05x Flash? Выбран ST Link debugger и его поменять нельзя, он не активный Оно шилось нормально , шилось-шилось пока не "заглючило" резко . Резко начал ругаться Кейл... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andries5 0 21 июля, 2013 Опубликовано 21 июля, 2013 · Жалоба Нажать левой кнопкой на Use Target Drive for Flash Programming. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Artos5 0 21 июля, 2013 Опубликовано 21 июля, 2013 · Жалоба Нажать левой кнопкой на Use Target Drive for Flash Programming. Спасибо Вам за наводку! Заработало! Только не могу понять почему оно заглючило! :( Есть еще серьезная проблема... Не работает полностью PORTB инициализирую так: void Init_GPIO(void) { /* Private typedef ---------------------------------------------------------*/ GPIO_InitTypeDef GPIO_InitStruct_butt; GPIO_InitTypeDef GPIO_InitStruct_led; //GPIO_InitTypeDef GPIO_InitStruct_led1; /*Enable or disable the AHB peripheral clock */ RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE); /** Configure pins as GPIO for USER button PA0 ------> GPIO_Input */ /* Configure Button pin as input */ GPIO_InitStruct_butt.GPIO_Mode = GPIO_Mode_IN; GPIO_InitStruct_butt.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_InitStruct_butt.GPIO_Pin = GPIO_Pin_0; GPIO_Init(GPIOA, &GPIO_InitStruct_butt); /** Configure pins as GPIO for led PC8 ------> GPIO_Output blue PC9 ------> GPIO_Output green */ /*Configure GPIO pin */ GPIO_InitStruct_led.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11; GPIO_InitStruct_led.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStruct_led.GPIO_OType = GPIO_OType_PP; GPIO_InitStruct_led.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_InitStruct_led.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOC, &GPIO_InitStruct_led); /*Configure GPIO pin PORTB*/ GPIO_InitStruct_led.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15; GPIO_InitStruct_led.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStruct_led.GPIO_OType = GPIO_OType_PP; GPIO_InitStruct_led.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_InitStruct_led.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOB, &GPIO_InitStruct_led); } и #define LED_Greeen_On (GPIOC->BSRR = GPIO_Pin_9) #define LED_Blue_On (GPIOC->BSRR = GPIO_Pin_8) #define LED_Greeen_Off (GPIOC->BRR = GPIO_Pin_9) #define LED_Blue_Off (GPIOC->BRR = GPIO_Pin_8) #define LED_Green_Toggle (GPIOC->ODR ^= GPIO_Pin_9) #define LED_Blue_Toggle (GPIOC->ODR ^= GPIO_Pin_8) #define Butt_User_Get_State (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)) // led out config #define DATA_LED_1 (GPIOB->BSRR = GPIO_Pin_13) #define DATA_LED_0 (GPIOB->BRR = GPIO_Pin_13) #define CLOCK_LED_1 (GPIOB->BSRR = GPIO_Pin_14) #define CLOCK_LED_0 (GPIOB->BRR = GPIO_Pin_14) #define LATCH_LED_1 (GPIOB->BSRR = GPIO_Pin_15) #define LATCH_LED_0 (GPIOB->BRR = GPIO_Pin_15) Если настраиваю другой порт например: PORTA То все работает... Подозреваю что умер у меня в отладчике порт В :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться