Кто любит RISC в жизни, заходим, не стесняемся.
Вт май 15, 2018 16:56:54
Ок. Я про такой и не знал. Держите плюсик.
Вт май 15, 2018 21:20:14
arkhnchul писал(а):Тот же допиленный из коробки eclipse плюс gcc.
Не пойму чем вам так нравится IDE на основе eclipse? Они же тормозят!
Вт май 15, 2018 22:16:09
они привычны, очень фичасты, настраиваемы. Тормоза - вещь субъективная и таки зависящая от компа. Разве что стартует долго, но у меня от этого есть средство -
- Код:
arkhnchul@arkhost-scow:~$ uptime
23:18:10 up 24 days, 1:15, 0 users, load average: 0,39, 0,54, 0,62
Ср май 16, 2018 15:58:36
Есть IDE на основе Code::Block. Не тормозят.
Ср май 16, 2018 22:52:59
ну да, есть они, кто ж спорит-то
Пт ноя 30, 2018 17:30:44
В IAR есть так называемые preinclude files, что по мне очень удобно. В Кейле как-то можно подобное организовать? У меня пока не получилось. Спасибо.
Пт ноя 30, 2018 20:04:12
По мне, так совершенно вредная опция. Чем меньше код зависит от настроек IDE, тем лучше. Нужно подключить файл - надо писать #include и не мучать опу.
Пт ноя 30, 2018 20:18:11
В IAR есть так называемые preinclude files, что по мне очень удобно. В Кейле как-то можно подобное организовать? У меня пока не получилось. Спасибо.
Удобно что? Х***я подобная визардо_тыкалкам?
Таки есть в кайло подобное г.
Пт ноя 30, 2018 22:49:45
А какие удобства сия фича создает и какие проблемы решает? Вообще не пойму, куда ее можно с пользой применять.
Сб янв 19, 2019 16:09:52
Привет народ. Не стал читать тему. Вопрос в лоб. Изучаю и практикую STM32. Освоил I2C, UART. С железом вообще никаких проблем нет.
А вот лед блинк никак не поддается...
В общем, ухожу из main в свою функцию MyMain(), в ней инкрементирую глобальную переменную, по совпадению включаю светодиод. Переменная объявлена перед main как uint8_t temp = 0. В MyMain глобальная переменная temp объявлена как extern uint8_t temp. Почему temp всегда равна 0?
else{
посоветуйте нормальную IDE вместо КАЛЛ
}
Сб янв 19, 2019 19:17:19
Для начала
Спойлер
А IDE вторична.
Сб янв 19, 2019 19:43:57
Для начала
Спойлер
А IDE вторична.
Что с тобой случилось что ты начал ANSI C рекомендовать к прочтению? Почему не С++?
Мурик, кончай уже советовать хрень, KEIL лучшая.
Сб янв 19, 2019 20:03:21
Что с тобой случилось что ты начал ANSI C рекомендовать к прочтению? Почему не С++?
Степ бай степ. Сначала таблица умножения, потом тригонометрия, затем высшая математика. Какой ему С++, если в двух переменных разобраться не может.
Сб янв 19, 2019 21:43:05
Чего началось то? Раньше с AVR и cvavr никаких проблем не было,обьявил перед main -ом переменную и она автоматом стала глобальной и доступной в обработчиках прерываний и всех остальных функциях ,а в кале какието траблы,типа extern-ов. Читал Вами указанную книжку,об этом там ни слова, и что теперь в каждой функции, напоминать компилятору о существовании глобальной переменной externom чтоли? "грамматическая ошибка на уровне 4 класса" какой-то
Сб янв 19, 2019 22:49:19
Чудак который не способен связать две переменные называет огромный и мощный продукт калом... Не умеешь, не берись.
Код не привёл? Гадать? Для начала объяви переменные ещё и волатильными.
Сб янв 19, 2019 23:56:49
Oxford писал(а):KEIL лучшая.
Денег стоит и не малых.
Переход на M0 не вариант. Проще IDE сменить на бесплатную.
Сухарь писал(а):обьявил перед main -ом переменную и она автоматом стала глобальной и доступной в обработчиках прерываний и всех остальных функциях
В других исходниках тоже доступна? Видимо в cvavr не используется раздельная компиляция, когда каждой файл компилируется в отдельности и о коде других файлов, компилятор ничего не знает.
Вс янв 20, 2019 00:16:59
Тебе какая разница платная не платная ты все равно ничего не продаешь. На торрентах лекарство есть.
M0/L0 там бесплатно и до 32кб на все.
Вс янв 20, 2019 00:49:41
Чего началось то? Раньше с AVR и cvavr никаких проблем не было,обьявил перед main -ом переменную и она автоматом стала глобальной и доступной в обработчиках прерываний и всех остальных функциях ,а в кале какието траблы,типа extern-ов.
Ключевое слово тут ПРЕРЫВАНИЙ. И ответ вовсе не extern, а volatile.
Читал Вами указанную книжку,об этом там ни слова, и что теперь в каждой функции, напоминать компилятору о существовании глобальной переменной externom чтоли? "грамматическая ошибка на уровне 4 класса" какой-то
Да что же ты врёшь? Раздел 10.1
В некоторых случаях объявление extern можно опустить. Если определение внешней переменной в исходном файле расположено выше функции, где она используется, то в объявлении extern нет необходимости.
Сухарь, проблема твоя яйца выеденного не стоит, но ты её даже сформулировать правильно не можешь. Это от полного непонимания как работает компилятор, а тем более оптимизирующий компилятор. Выкладывай код и ещё до восхода солнца тебе ошибку найдут (ткнут носом).
Вс янв 20, 2019 09:20:43
Чудные дела... Вчера это не работало и Keil ругался на не объявленную переменную. Сегодня все собралось, прошилось и работает, видимо перезагрузка помогла...
Спойлер
#include "main.h"
#include "stm32f1xx_hal.h"
uint16_t temp = 0;
#include "MyMain.c"
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
void MyMain(void);
int main(void){
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
while(1){
MyMain();
}
}
void SystemClock_Config(void){
RCC_OscInitTypeDef RCC_OscInitStruct;
RCC_ClkInitTypeDef RCC_ClkInitStruct;
/**Initializes the CPU, AHB and APB busses clocks
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
/**Initializes the CPU, AHB and APB busses clocks
*/
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
/**Configure the Systick interrupt time
*/
HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);
/**Configure the Systick
*/
HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
/* SysTick_IRQn interrupt configuration */
HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
}
/** Configure pins as
* Analog
* Input
* Output
* EVENT_OUT
* EXTI
*/
static void MX_GPIO_Init(void){
GPIO_InitTypeDef GPIO_InitStruct;
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);
/*Configure GPIO pin : PC13 */
GPIO_InitStruct.Pin = GPIO_PIN_13;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
}
void _Error_Handler(char *file, int line){
/* USER CODE BEGIN Error_Handler_Debug */
/* User can add his own implementation to report the HAL error return state */
while(1)
{
}
/* USER CODE END Error_Handler_Debug */
}
#ifdef USE_FULL_ASSERT
void assert_failed(uint8_t* file, uint32_t line)
{
}
#endif
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Спойлер
void MyMain(void){
temp++;
HAL_Delay(1);
if(temp >= 1000){
temp = 0;
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,RESET);
HAL_Delay(100);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,SET);
}
}
ни extern, ни volatile не понадобились...
Да не ругайтесь вы, парни. Перешел на новый для себя камень и прежде, чем писать что - то серьезное - люблю проверить и попробовать все с самых азов. И предложенные книжки еще лет 8 назад читал, ничего не понятно было, вот и не помню ничо...
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.