První česká družice navržená a sestavená výhradně studenty se dostala na oběžnou dráhu Země. Družice KOSTKA, kterou vyvinul studentský tým YSpace z Vysokého učení technického v Brně (VUT), dnes odstartovala na palubě rakety Falcon 9 společnosti SpaceX v rámci mise Transporter-17 z kalifornské základny Vandenberg Space Force Base.
Po nákresech ovladače Steam Controller a puku společnost Valve na svém GitLabu publikovala projekt Inkterface, tj. podrobný návod (PDF, video v mp4) na sestavení předního panelu s e-papírovým displejem pro Steam Machine pro zobrazování systémových informací. Použity jsou součástky od společnosti Adafruit.
V jádře Linux byla nalezena a v dubnu letošního roku v upstreamu opravena kritická zranitelnost Bad Epoll aneb CVE-2026-46242. Jedná se o zranitelnost typu "race-condition use-after-free", která běžnému uživateli umožňuje získat práva roota. Na distribucích Linuxu i na Androidu. Dokonce i zevnitř sandboxu prohlížeče Chrome. Chyba byla do Linuxu zavedena v dubnu 2023, tj. Linux 6.4.
Byla vydána nová verze 10.4 sady aplikací pro SSH komunikaci OpenSSH. Přináší řadu důležitých bezpečnostních oprav, vylepšení funkcí a oprav chyb. Vyzkoušet lze experimentální podporu postkvantového algoritmu mldsa44-ed25519.
Open Printer je otevřená kompaktní tiskárna od Open Tools. Brzy by měla být spuštěna kampaň na její podporu na Crowd Supply. Současně by měly být uvolněny zdrojové kódy. Postavena je na Raspberry Pi Zero W a STM32. Používá inkoustové kazety HP 302.
Byla vydána nová verze 3.28.0 FreeRDP, tj. svobodné implementace protokolu RDP (Remote Desktop Protocol). Opraveno bylo 8 zranitelností.
Čeští policisté společně se svými tureckými kolegy zadrželi 51 lidí, kteří se podle kriminalistů podíleli na provozu podvodného call centra v Istanbulu. Skupina je spojena s 1173 případy podvodů na českých občanech, při kterých vznikla škoda přes 553 milionů korun.
Immich byl vydán v nové verzi 3.0.0. Jedná se o alternativu k výchozím aplikacím od Googlu a Applu pro správu fotografií a videí umožňující vlastní hosting serveru Immich. K vyzkoušení je demo. Immich je součástí balíčků open source aplikací FUTO. Zdrojové kódy jsou k dispozici na GitHubu pod licencí AGPL-3.0.
Společnost Juno Computers prodávající počítače s předinstalovaným Linuxem má nově v nabídce linuxový tablet Juno Tab 4 - WiFi. Na výběr je Debian, Ubuntu a Kubuntu. Předobjednat jej lze za 949 liber (26 500 korun).
Podman (Pod Manager), nástroj umožňující vytvářet a provozovat kontejnery, aniž by uživatel potřeboval práva roota, byl vydán v nové major verzi 6.0.0. Přehled novinek v poznámkách k vydání. Řešena je i vážná bezpečnostní chyba CVE-2026-57231.
Mám aplikaci v avr pro atmega16. Zatím zkouším přesně měřit otáčky. Měřím způsobem, že počítám čas mezi pulsy a pak kolik je pulsů do sekundy. Problém je, že zřejmě pokud zrovna atmega přijímá nějaká data přes sériovou linku, tak asi nemůže běžet přerušení pro měření otáček, které běží Xkrát za sekundu. Proto jsou výsledné hodnoty např. 550 +-30. Co s tím? Jak nastavit, aby přerušení pro měření otáček mohlo přerušit cokoliv jiného a tudíš nedocházelo ke zpožděním?
Nebo i v té obsluze seriového portu nejdříve počítat otáčky.
Teď tam mám krystal 14.7456 MHz, což je nejrychlejší co tam mohu dát aby se to dobře dělilo.
Tak v ostatních přerušeních problém asi nebude. Vypnul jsem je totiž a povolil jen to, kde se měří otáčky a ještě je povolené přerušení od sériového portu, ale vyrubal jsem odtamtud všechen kód. Co mám tedy špatně? Měřím nějak špatně otáčky? Vím, že bych měl měřit přes několik pulsů, ale zkouším odchylku v tom jednom a ta je +- 5 cyklů, což ve výsledku dává docela velikou odchylku v rychlosti. Zde jsou povolená přerušení:
ISR(TIMER2_OVF_vect) {
TCNT2=255; // 14.7456MHz/1024/1=14400 preruseni/sec
longac++;
if (longac>=2880) {
longac=0;
longacDOit=1;
}
if (longac10<288001) longac10++;
if (longac10==288000) {
//longac10=0;
longac10DOit=1;
OCR1A=0;
}
if (longac10==1) {
OCR1A=300;
}
pulsecounterL++;
if (bit_is_set(PIND, 6) && ! speedLcounted1) {
pulseL++;
speedLcounted3 = 0;
speedLcounted1 = 1;
}
if (bit_is_set(PIND, 7) && ! speedLcounted2) {
pulseL++;
speedLcounted4 = 0;
speedLcounted2 = 1;
}
if (bit_is_clear(PIND, 6) && ! speedLcounted3) {
pulseL++;
speedLcounted1 = 0;
speedLcounted3 = 1;
}
if (bit_is_clear(PIND, 7) && ! speedLcounted4) {
pulseL++;
speedLcounted2 = 0;
speedLcounted4 = 1;
}
if (pulseL>=1 || pulsecounterL>=14400) {
//finalSpeedL = (pulseL*(14400000/pulsecounterL))/1000;
finalSpeedL=pulsecounterL; // pro ladeni, zobrazi jen kolik cyklu mezi 2 pulsy
pulsecounterL = 0;
pulseL = 0;
}
if (speedLcounted1 && speedLcounted2) {
if (!speedLdirTest) speedLdir = 1; else speedLdir = 0;
}
if (speedLcounted1 && ! speedLcounted2) {
speedLdirTest=0;
}
if (! speedLcounted1 && speedLcounted2) {
speedLdirTest=1;
}
}
// preruseni po prichodu noveho znaku na USART
// novy byte zapise do pozice 0, ostatni posune o 1 vyse = FIFO fornta
// po prichodu \n nastavi priznak enteru - je zpracovan v main()
ISR(USART_RXC_vect) {
unsigned char status,data,i;
}
Zkusim zvysit frekvenci odecitani. Mohlo by pomoct.
ISR(INT0_vect) {
pin1set = bit_is_set(PIND, 2);
pulseL++;
// zde kód pro určení směru
}
Analogicky pro ISR(INT1_vect), v přerušení od časovače by sis jenom přečetl to, kolik pulsů se za daný interval přečetlo. Samozřejmě je nutné mít proměnné deklarované jako volatile tam, kde je to potřeba.
Tiskni
Sdílej: