Пт ноя 13, 2020 18:38:25
Называется - "стандартная отписка".Good day, apologies for the late response. With regards to your query, as of now, the latest software for TIRSLK-EVM-SW is in this link (https://www.ti.com/tool/TIRSLK-EVM-SW).
There is no information regarding new version of this software.
I hope the information provided pleases you. If you still have other concern, please let us know by replying to this email.
Ср ноя 18, 2020 15:04:29
25% 3750 57rpm 75-80ms
50% 7500 124rpm 65-90ms
75% 11250 187rpm 70ms
Вс ноя 22, 2020 15:00:48
// delay function
// which delays about 6*ulCount cycles
// ulCount=8000 => 1ms = (8000 loops)*(6 cycles/loop)*(20.83 ns/cycle)
//Code Composer Studio Code
void delay(unsigned long ulCount){
__asm ( "pdloop: subs r0, #1\n"
" bne pdloop\n");
}
// ----------
// Simple delay function which delays about n microseconds.
// Inputs: n, number of us to wait
// Outputs: none
void Clock_Delay1us(uint32_t n){
n = (382*n)/100;; // 1 us, tuned at 48 MHz
while(n){
n--;
}
}
// Simple delay function which delays about n milliseconds.
// Inputs: n, number of msec to wait
// Outputs: none
void Clock_Delay1ms(uint32_t n){
while(n){
delay(ClockFrequency/9162); // 1 msec, tuned at 48 MHz
n--;
}
Сб ноя 28, 2020 22:05:35
Вс дек 13, 2020 21:07:33
while((EUSCI_B1->IFG & UCTXIFG0)==0){};// wait UCTXIFG0
Чт дек 24, 2020 12:15:43
Чт дек 24, 2020 13:50:18
Чт дек 24, 2020 15:42:23
Чт янв 07, 2021 20:38:13
800 ColorRed !
Threshold 800 swap !
MAXspeed 16000 swap !
MINspeed 10000 swap !
MAXmotor 16000 swap !
TurnSpeed 6000 swap !
Accelerat 100 swap !
K*error 10 swap !
K*de/dt 120 swap !
Kintegral 0 swap !
MotorKprop 135 swap !
MotorKint 256 swap !
OnWay 100 swap !
итд.
Сб янв 09, 2021 18:40:29
Вс янв 24, 2021 11:06:36
Вт мар 09, 2021 16:51:30
Calculation time: 6003/3 us - новый без расслоения
Calculation time: 6745/3 us - старый с расслоением
Вт мар 09, 2021 21:04:31
Я не понял в чём проблема с SDK и почему пишите "придётся"? При создании проекта есть опция "Empty C Project". В нём можно пройтись по вызовам функций в sl_system_init() и подобных и убрать всё лишнее, если не нравится. Но смысла я лично в этом не вижу. Или хотите сконфигурировать периферию с нуля через регистры? Если так, то это тоже возможно. Короче, из вышеизложенного мне неясно в чём проблема и чего хотите добиться. Наконец, программирования без SDK не тоже самое, что stackless. Stack относится к протоколам типа Bluetooth, а в самом SDK для EFM32GG нет никакого стека. Примеры конфигурирования периферии через EMLIB находятся на GitHub.Но если использовать SDK - получится ардуина. Видимо, придётся использовать её без SDK.
Вт мар 09, 2021 23:19:10
Ср мар 10, 2021 06:20:26
Ср мар 10, 2021 07:09:34
while (1) {
// Do not remove this call: Silicon Labs components process action routine
// must be called from the super loop.
sl_system_process_action();
// Application process.
app_process_action();
}
Ср мар 10, 2021 19:27:46
GPIO_ExtIntConfig(SL_EMLIB_GPIO_INIT_BTN_PORT, SL_EMLIB_GPIO_INIT_BTN_PIN, SL_EMLIB_GPIO_INIT_BTN_PIN, false, true, true);
GPIOINT_Init(); // init GPIOINT driver
GPIOINT_CallbackRegister(SL_EMLIB_GPIO_INIT_BTN_PIN, on_btn_press); // register callback function
.......
void on_btn_press(uint8_t pin) // Button ISR
{
(void) pin; // just wake-up CPU
}
void GPIO_setup(void) // configure GPIO ports
{
CMU->HFPERCLKEN0 |= CMU_HFPERCLKEN0_GPIO; // enable clock to GPIO
(GPIO->P[2]).MODEH = GPIO_P_MODEH_MODE10_PUSHPULL+ // set output mode on LED0 (PC.10)
GPIO_P_MODEH_MODE11_PUSHPULL+ // set output mode on LED1 (PC.11)
GPIO_P_MODEH_MODE8_INPUTPULL+ // set pull mode on BUTTON0 (PC.8)
GPIO_P_MODEH_MODE9_INPUTPULL; // set pull mode on BUTTON1 (PC.9)
(GPIO->P[2]).DOUT = BUTTON0 + BUTTON1; // set pullup
GPIO->EXTIPSELH = GPIO_EXTIPSELH_EXTIPSEL9_PORTC+ // enable interrupt at PC.9
GPIO_EXTIPSELH_EXTIPSEL8_PORTC; // ... and at PC.8
GPIO->EXTIFALL = BUTTON0 + BUTTON1; // falling edge interrupts
GPIO->IEN = BUTTON0 + BUTTON1;
NVIC_EnableIRQ(GPIO_ODD_IRQn); // enable interrupts in NVIC
NVIC_EnableIRQ(GPIO_EVEN_IRQn);
}
void GPIO_EVEN_IRQHandler() // even pins interrupt handler
{
if (GPIO->IF & BUTTON0) // check the interrupt source
{
.......
GPIO->IFC = BUTTON0; // clear button IF
}
}
void GPIO_ODD_IRQHandler() // odd pins interrupt handler
{
if (GPIO->IF & BUTTON1) // check the interrupt source
{
......
GPIO->IFC = BUTTON1; // clear button IF
}
}
Сб мар 13, 2021 20:28:25
BUS_RegMaskedSet(&USART3->IEN, USART_IEN_TXBL);
BUS_RegMaskedClear(&USART3->IEN, USART_IEN_TXBL);
Сб мар 13, 2021 23:45:03
Вс мар 14, 2021 09:40:27
void UART0_Init(void) {
/* R149 HiZ, R150 HiZ */
GPIO_PinModeSet(gpioPortE, 6, gpioModeInputPull, 1); // RX
GPIO_PinModeSet(gpioPortE, 7, gpioModePushPull, 1); // TX
GPIO_PinModeSet(gpioPortB, 6, gpioModeInput, 1); // CTS
GPIO_PinModeSet(gpioPortB, 5, gpioModePushPull, 1); // RTS
/* R149 HiZ, R150 лог1 */
GPIO_PinModeSet(gpioPortA, 15, gpioModePushPull, 1); // enable link mcu <-> debug
/* R149 лог1, R150 лог1 */
CMU_ClockEnable(cmuClock_USART0, 1);
USART0->CTRL = USART_CTRL_OVS_X16 ;
USART0->CLKDIV = 0x1a20;
USART0->ROUTEPEN = USART_ROUTEPEN_TXPEN | USART_ROUTEPEN_RXPEN | USART_ROUTEPEN_CTSPEN | USART_ROUTEPEN_RTSPEN;
USART0->ROUTELOC0 = USART_ROUTELOC0_RXLOC_LOC1 | USART_ROUTELOC0_TXLOC_LOC1;
USART0->ROUTELOC1 = USART_ROUTELOC1_CTSLOC_LOC4 | USART_ROUTELOC1_RTSLOC_LOC4;
USART0->FRAME = USART_FRAME_DATABITS_EIGHT | USART_FRAME_STOPBITS_ONE | USART_FRAME_PARITY_NONE;
USART0->CMD = USART_CMD_TXEN | USART_CMD_RXEN | USART_CMD_CLEARRX | USART_CMD_CLEARTX;
USART0->IEN = USART_IEN_RXDATAV;
/* R149 лог1, R150 лог0 */
USART0->CTRLX = USART_CTRLX_CTSEN;
NVIC_EnableIRQ(USART0_TX_IRQn);
NVIC_SetPriority(USART0_TX_IRQn, 4);
NVIC_EnableIRQ(USART0_RX_IRQn);
NVIC_SetPriority(USART0_RX_IRQn, 4);
}
Т.е. мне надо беспокоиться почему на R149 лог1! Но, это приходит от JLink дебаггера и это прекрасно видно, как только я устанавливаю PA15 в лог.1.RTS is an active-low output from the CP210x to talk to the external UART device that it is ready to accept more data. CP210x pulls the RTS to high indicate to the external UART device to stop sending data when the amount of data in the RX FIFO reaches the watermark.
CTS is an active-low input to CP210x. CP210x sends data to external UART only when the CTS is pulled low. If the external UART device's RX FIFO is getting full, it will pull this pin high.