per un progetto didattico devo inviare segnali midi al PC da una FLEX FULL Demo board usando un convertitore seriale/usb. Il kernel è EDF.
Uso Hterm per monitorare temporaneamente il traffico, ma al posto dei segnali midi al PC ricevo l'output nell'immagine allegata (ossia il primo byte inviato è 255 e tutti gli altri 0). Non capisco a cosa possa essere dovuto, perchè le prove precedenti con FP non avevano dato problemi...
Alcuni spezzoni di codice:
Code: Select all
#include "ee.h"
#include "ee_irq.h"
#include "eeuart.h"
#define USE_UART2
Code: Select all
void send_message(unsigned char data)
{
#ifdef USE_UART1
EE_UART1_Send(data);
#endif
#ifdef USE_UART2
EE_UART2_Send(data);
#endif
}
Code: Select all
TASK(Task0)//uno dei task
{
send_message(0x80);//note on
send_message(0x60);
send_message(127);
}
Code: Select all
EE_buttons_init(&handle_button_interrupts, 15);
EE_time_init();
SetRelAlarm(myAlarm, 20, 20);
SetRelAlarm(myAlarm1, 20, 20);
EE_UART2_Init(115200, BIT8_NO | BIT_STOP_1, CTRL_SIMPLE);
Code: Select all
Code: Select all
CPU test_application {
OS EE {
EE_OPT = "DEBUG";
EE_OPT = "__SEM__";
CPU_DATA = PIC30 {
APP_SRC = "code.c";
APP_SRC = "eeuart.c";
MULTI_STACK = TRUE{
IRQ_STACK = TRUE {
SYS_SIZE=64;
};
};
ICD2 = TRUE;
};
MCU_DATA = PIC30 {
MODEL = PIC33FJ256MC710;
};
BOARD_DATA = EE_FLEX {
TYPE = DEMO {
OPTIONS = ALL;
};
};
KERNEL_TYPE = EDF { NESTED_IRQ = TRUE; TICK_TIME = "500ns";};
};
TASK Task0 {
PRIORITY = 0x01; /* Low priority */
STACK = SHARED;
REL_DEADLINE = "10ms";
SCHEDULE = FULL;