Aktywne Wpisy
rales +351
tag do obserwowania --> #sredniasondazysejm
07-13 PAŹDZIERNIKA 2023
1. Prawo i Sprawiedliwość - 33,7% - 188 mandatów (⬇ 2,1%)
2. Koalicja Obywatelska - 27,8% - 149 mandatów (⬇ 0,7%)
3. Trzecia Droga - 10,4% - 43 mandaty (⬆ 1,4%)
4. Lewica - 9,9% - 40 mandatów (⬆ 1,2%)
5. Konfederacja - 8,4% - 39 mandatów (⬇ 1,3%)
07-13 PAŹDZIERNIKA 2023
1. Prawo i Sprawiedliwość - 33,7% - 188 mandatów (⬇ 2,1%)
2. Koalicja Obywatelska - 27,8% - 149 mandatów (⬇ 0,7%)
3. Trzecia Droga - 10,4% - 43 mandaty (⬆ 1,4%)
4. Lewica - 9,9% - 40 mandatów (⬆ 1,2%)
5. Konfederacja - 8,4% - 39 mandatów (⬇ 1,3%)
Xtreme2007 +149
W te wybory stawiam na #konfederacja
Jako jedyni bronili moich praw podczas pandemii. Jako jedyni z rigczem głosowali przeciwko rozdawnictwu. Jako jedyni są za utrzymaniem gotówki i wpisaniem jej do konstytucji.
#wybory
Jako jedyni bronili moich praw podczas pandemii. Jako jedyni z rigczem głosowali przeciwko rozdawnictwu. Jako jedyni są za utrzymaniem gotówki i wpisaniem jej do konstytucji.
#wybory
- wersja 1 - w main wołam serverrun(), który posiada swoją nieskończoną pętlę.
- wersja 2 - w main w pętli wołam funkcję servertask(), która sprawdza warunek, jeżeli spełniony to odsyła dane. Jedyna różnica co do funkcji server_run() to taka, że tutaj nie ma pętli nieskończonej.
Zresztą zobaczcie sami, kod jest bardzo prosty.
Wersja 1 -> klik
Wersja 2 -> klik
Wersja 2 działa - dane są odsyłane, wersja 1 nie działa, dane nie są wysyłane. O co może chodzić?
MCU STM32F103, g++ 8.2.
#programowanie #embedded #mikrokontrolery
Zmiana kodus serverrun na:
void server_run()
{
while(true)
{
cm_disable_interrupts();
size_t s = read_rb.capacity();
cm_enable_interrupts();
if (s >= 64)
{
while (read_rb.capacity() != 0)
{
write_rb.write(read_rb.read());
}
sendData();
}
}
}
naprawia działanie wersji pierwszej, Muszę to przeanalizowac, gdyż to rozwiązanie zostało napisane dość 'na szybko' aby coś sprawdzić.
- uartworkingversion
- uartnotworking_version
Najważniejsze pliki:
- src/app/src/main,cpp
- src/app/src/server.cpp
@bielu000: nie widzę takich repo
Co do przerwań, to możesz inkrementować zmienną w usart1_isr i w ten sposób sprawdzić ile razy było przerwanie wywołane. Zmienna musi być volatile.
void server_run()
{
while(true)
{
if (read_rb.capacity() == 64)
{
// while (read_rb.capacity() != 0)
// {
// write_rb.write(read_rb.read());
// }
sendData();
}
}
}
Dane są wpisane do bufora gdzieś u góry w inicie. Raz na stałe.
Może coś przez to, że ten ring buffer jest akutalizowany zarówno z przerwania jak i z pętli głównej?
Komentarz usunięty przez autora
@bielu000: a co z pracą krokową (Step Over)? Jak się zatrzyma na linii 80, to klikając Step Over, czy jak to się nazywa w Code, nie wchodzi do linii 82?
Zmieniłem warunek na >= ale nic to nie daje. Podglądałem zawartość zmiennej xsize, tej która trzyma capacity bufora i zwiększa się odpowiednio do otrzymanych danych. Tj. najpierw 0 -> 64 -> 128 - 192 etc.