Z upstreamu GNOME Mutter byl zcela odstraněn backend X11. GNOME 50 tedy poběží už pouze nad Waylandem. Aplikace pro X11 budou využívat XWayland.
Byl publikován plán na odstranění XSLT z webových prohlížečů Chrome a Chromium. S odstraněním XSLT souhlasí také vývojáři Firefoxu a WebKit. Důvodem jsou bezpečnostní rizika a klesající využití v moderním webovém vývoji.
Desktopové prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklé sloučením projektů Razor-qt a LXDE bylo vydáno ve verzi 2.3.0. Přehled novinek v poznámkách k vydání.
Organizace Open Container Initiative (OCI) (Wikipedie), projekt nadace Linux Foundation, vydala Runtime Specification 1.3 (pdf), tj. novou verzi specifikace kontejnerového běhového prostředí. Hlavní novinkou je podpora FreeBSD.
Nový open source router Turris Omnia NG je v prodeji. Aktuálně na Allegro, Alternetivo, Discomp, i4wifi a WiFiShop.
Na YouTube a nově také na VHSky byly zveřejněny sestříhané videozáznamy přednášek z letošního OpenAltu.
Jednou za rok otevírá společnost SUSE dveře svých kanceláří široké veřejnosti. Letos je pro vás otevře 26. listopadu v 16 hodin v pražském Karlíně. Vítáni jsou všichni, kdo se chtějí dozvědět více o práci vývojářů, prostředí ve kterém pracují a o místní firemní kultuře. Můžete se těšit na krátké prezentace, které vám přiblíží, na čem inženýři v Praze pracují, jak spolupracují se zákazníky, partnery i studenty, proč mají rádi open source a co
… více »Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za říjen (YouTube).
Jeff Quast otestoval současné emulátory terminálu. Zaměřil se na podporu Unicode a výkon. Vítězným emulátorem terminálu je Ghostty.
Amazon bude poskytovat cloudové služby OpenAI. Cloudová divize Amazon Web Services (AWS) uzavřela s OpenAI víceletou smlouvu za 38 miliard USD (803,1 miliardy Kč), která poskytne majiteli chatovacího robota s umělou inteligencí (AI) ChatGPT přístup ke stovkám tisíc grafických procesů Nvidia. Ty bude moci využívat k trénování a provozování svých modelů AI. Firmy to oznámily v dnešní tiskové zprávě. Společnost OpenAI také nedávno
… více »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: