Witam,
Jestem w trakcie próby stworzenia programu dla tego modułu Meshnetics. Co prawda jest kilka aplikacji przykładowych dla tego układu ale ja chciałbym napisać program od podstaw, żeby dobrze zrozumieć ten stos. Napotkałem niestety trochę problemów i chciałbym Was poprosić o radę:
1. Nie wiem jak skompilować program w AVR Studio nie wykorzystując makefile. Przy próbie kompilacji środowisko informuje mnie, że nie ma plików nagłówkowych (<zdo.h> itp). Próbowałem już na wszystkie sposoby załączyć te pliki w opcjach projektu ale nie dało rady. Jak to zrobić, żeby nie pisać makefile? Obecnie staram się wykorzystywać ramę projektu lowpower dla mojej aplikacji(czyli pliki makefile i configuration)
2. Napisałem prosty program, którego zadaniem jest odpalenie co 30 sek. przerwania od Timera i wysłanie 4 literek po USART. Nie mogę tego skompilować, przy czym AVR Studio wyrzuca mi jakieś dziwne błędy. Gdzie tu jest błąd? Czy przyczyna tych błędów może mieć związek z pkt. 1, czyli błędnym załączeniem plików nagłówkowych wynikających z zapożyczonego makefile? :
A oto informacje kompilatora:
Jestem w trakcie próby stworzenia programu dla tego modułu Meshnetics. Co prawda jest kilka aplikacji przykładowych dla tego układu ale ja chciałbym napisać program od podstaw, żeby dobrze zrozumieć ten stos. Napotkałem niestety trochę problemów i chciałbym Was poprosić o radę:
1. Nie wiem jak skompilować program w AVR Studio nie wykorzystując makefile. Przy próbie kompilacji środowisko informuje mnie, że nie ma plików nagłówkowych (<zdo.h> itp). Próbowałem już na wszystkie sposoby załączyć te pliki w opcjach projektu ale nie dało rady. Jak to zrobić, żeby nie pisać makefile? Obecnie staram się wykorzystywać ramę projektu lowpower dla mojej aplikacji(czyli pliki makefile i configuration)
2. Napisałem prosty program, którego zadaniem jest odpalenie co 30 sek. przerwania od Timera i wysłanie 4 literek po USART. Nie mogę tego skompilować, przy czym AVR Studio wyrzuca mi jakieś dziwne błędy. Gdzie tu jest błąd? Czy przyczyna tych błędów może mieć związek z pkt. 1, czyli błędnym załączeniem plików nagłówkowych wynikających z zapożyczonego makefile? :
#include <taskManager.h>
#include <zdo.h>
#include <configServer.h>
#include <aps.h>
#include <stdio.h>
#include <types.h>
#include <appFramework.h> // Main stack types
#include <mnHalTimer.h>
#include <halAppClock.h>
#include <usart.h>
int testowa;
//static ZDO_ZdpReq_t zdpLeaveReq;
typedef enum {
APP_INITING_STATE, // Application initial state (after Power On or Reset)
APP_STARTING_NETWORK_STATE, // Joining network state
APP_IN_NETWORK_STATE, // Network available
APP_I2C_TASK, //rozpoczęcie komunikacji z przetwornikami
} AppState_t;
char send[100]; // any size maybe present
AppState_t appState = APP_INITING_STATE;
/***************************************
USART DEFINITION
***************************************/
static HAL_UsartDescriptor_t appUsartDescriptor
{
.mode = USART_MODE_ASYNC,
.baudrate = USART_BAUDRATE_38400,
.data = USART_DATA8,
.parity = USART_PARITY_NONE,
.stopbits = USART_STOPBIT_1,
.syncMode = USART_CLK_MODE_MASTER,
.rxBuffer = usartRxBuffer, // enable Rx
.rxBufferLength = sizeof(usartRxBuffer),
.txBuffer = NULL, // use callback mode
.txBufferLength = 0,
.rxCallback = rxCallback,
.txCallback = txCallback,
};
static void ZDO_StartNetworkConf(ZDO_StartNetworkConf_t *confirmInfo)
{
if (ZDO_SUCCESS_STATUS == confirmInfo->status)
{
appState = APP_IN_NETWORK_STATE;
SYS_PostTask(APL_TASK_ID);
}
}
void ZDO_WakeUpInd(void)
{
if (APP_IN_NETWORK_STATE == appState)
{
appState = APP_STARTING_NETWORK_STATE;
SYS_PostTask(APL_TASK_ID);
}
}
void ZDO_MgmtNwkUpdateNotf(ZDO_MgmtNwkUpdateNotf_t *nwkParams)
{
}
/***************************************
TIMER DEFINITION
***************************************/
static HAL_AppTimer_t SensorTimer {
.interval = 30000,
.mode = TIMER_REPEAT_MODE,
.callback = SensorTimerFired,
};
void SensorTimerFired(void)
{
appState = APP_I2C_TASK;
SYS_PostTask(APL_TASK_ID);
}
/***************************************
TaskHandler DEFINITION
***************************************/
void APL_TaskHandler()
{
switch (appState)
{
case APP_IN_NETWORK_STATE:
testowa=0;
break;
case APP_INITING_STATE: //node has initial state
break;
case APP_STARTING_NETWORK_STATE:
break;
case APP_I2C_TASK:
HAL_OpenUsart(appUsartDescriptor);
HAL_WriteUsart(appUsartDescriptor,send,4);
HAL_CloseUsart(appUsartDescriptor);
break;
}
}
A oto informacje kompilatora:
Cytat:[/quote]
src/lowpower.c:31: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
src/lowpower.c: In function 'ZDO_MgmtNwkUpdateNotf':
src/lowpower.c:69: warning: unused parameter 'nwkParams'
src/lowpower.c: At top level:
src/lowpower.c:79: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
src/lowpower.c: In function 'APL_TaskHandler':
src/lowpower.c:115: error: 'appUsartDescriptor' undeclared (first use in this function)
src/lowpower.c:115: error: (Each undeclared identifier is reported only once
src/lowpower.c:115: error: for each function it appears in.)
make: *** [objs/lowpower.o] Error 1
