Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: freeRTOS - не работает простая мигалка
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Evgeniy1995
Не работает простейшая мигалка на AtMega16A-PU.
Версия freeRtos - 7.1.0
Программирую в Atmel Studio 6.1.

CODE
#include "FreeRTOS.h"
#include "task.h"

void vTask0( void *pvParameters )
{
while(1){
PORTA = 255;
vTaskDelay(500);
PORTA = 0;
vTaskDelay(500);
}
}

void vTask1( void *pvParameters )
{
while(1){
PORTB = 255;
vTaskDelay(1300);
PORTB = 0;
vTaskDelay(1300);
}
}

int main( void )
{
DDRA = 255;
DDRB = 255;
xTaskCreate( vTask0,(signed char *) "Task0",configMINIMAL_STACK_SIZE,NULL,1,NULL);
xTaskCreate( vTask1,(signed char *) "Task1",configMINIMAL_STACK_SIZE,NULL,1,NULL);
vTaskStartScheduler();
return 0;
}


В проэкт добавил файл "FreeRTOSConfig.h"
CODE
#ifndef FREERTOS_CONFIG_H
#define FREERTOS_CONFIG_H

#include <avr/io.h>

#define configUSE_PREEMPTION 1
#define configUSE_IDLE_HOOK 0
#define configUSE_TICK_HOOK 0
#define configCPU_CLOCK_HZ ( ( unsigned long ) 8000000 )
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 4 )
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 85 )
#define configTOTAL_HEAP_SIZE ( (size_t ) ( 500 ) )
#define configMAX_TASK_NAME_LEN ( 8 )
#define configUSE_TRACE_FACILITY 0
#define configUSE_16_BIT_TICKS 1
#define configIDLE_SHOULD_YIELD 1
#define configQUEUE_REGISTRY_SIZE 0

/* Co-routine definitions. */
#define configUSE_CO_ROUTINES 1
#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )

/* Set the following definitions to 1 to include the API function, or zero
to exclude the API function. */

#define INCLUDE_vTaskPrioritySet 0
#define INCLUDE_uxTaskPriorityGet 0
#define INCLUDE_vTaskDelete 0
#define INCLUDE_vTaskCleanUpResources 0
#define INCLUDE_vTaskSuspend 0
#define INCLUDE_vTaskDelayUntil 1
#define INCLUDE_vTaskDelay 1


#endif /* FREERTOS_CONFIG_H */


Добавил файлы (как ссылки) -
tasks.c
port.c
list.c
heap_2.c
queue.c

Добавил ссылки на директории
freeRtos/source/include
freeRtos/source/portable/GCC/atmega323.

Микроконтроллер выставлен на 8мг от внутреннего генератора, остальные фьюзы не трогал.
При компиляции ошибок не выдает, но при этом неработает не в протеусе не на железе. Уже неделю мучаюсь, все примеры испробывал. Может у ковото есть готовый проект под Atmel Studio 6.1? В чем моя ошибка?
shamrel
Могу рекомендовать Создание задач и управление ими в операционной системе реального времени FreeRTOS
Там вроде под AVR и предельно просто.
Twin_by
Всем здравствуйте! Решил покрутить в руках FreeRTOS на ATmega324A. Нашел статью http://makesystem.net/?p=1363#.VrDha41a9qA . И когда дело дошло до сборки посыпали ошибки: undefined reference to pvPortMalloc. Посмотрел где идет определение, а там стандартная конструкция "если не определен, то определить". Или я что то не понимаю. В чем может быть проблема? Архив с проектом прилагается Нажмите для просмотра прикрепленного файла
zltigo
QUOTE (Twin_by @ Feb 3 2016, 21:28) *
Или я что то не понимаю. В чем может быть проблема?

Нет менеджера памяти. Следует написать или подобрать из имеющихся. Что можно понять не так? Читайте про heap.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.