Richard Hughes oznámil, že službu Linux Vendor Firmware Service (LVFS) umožňující aktualizovat firmware zařízení na počítačích s Linuxem, nově sponzoruje také společnost HP.
O víkendu proběhla demopárty Outline 2026. Publikována byla prezentovaná dema. Upozornit lze na 16 bajtové, opravdu šestnáct bajtové, zvukově obrazové demo Wake Up! 16b (YouTube).
Byla vydána nová verze 9.5 multiplatformní digitální pracovní stanice pro práci s audiem (DAW) Ardour. Přehled novinek, vylepšení a oprav v poznámkách k vydání a na YouTube.
Dnes a zítra probíhá vývojářská konference Google I/O 2026. Sledovat lze na YouTube a na síti 𝕏 (#GoogleIO).
Canonical vydal Ubuntu Core 26. Vychází z Ubuntu 26.04 LTS a podporováno bude 15 let. Ubuntu Core je minimální neměnný operační systém určený pro vestavěné systémy.
Bylo vydáno OpenBSD 7.9. Po dlouhé době opět se songem: Diamond in the Rough.
Byl vydán Mozilla Firefox 151.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 151 bude brzy k dispozici také na Flathubu a Snapcraftu.
Elon Musk prohrál soudní spor se společností OpenAI, která se podle jeho žaloby odchýlila od původně uváděného cíle vyvíjet umělou inteligenci (AI) ku prospěchu lidstva. Porota včera po necelých dvou hodinách dospěla k jednomyslnému závěru, že Musk žalobu podal příliš pozdě. Musk byl jedním ze spoluzakladatelů společnosti OpenAI, která vznikla v roce 2015 a vyvinula populární chatovací systém ChatGPT. V roce 2018 na svůj post ve vedení
… více »Byla vydána nová verze 10.4 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Opraveny jsou zranitelnosti Copy Fail a Dirty Frag. Přibyl nový obraz pro Orange Pi 5B.
Pokud je zranitelnost Linuxu v nepoužívaném jaderném modulu, lze ji jednoduše vyřešit zakázáním automatického načítání tohoto konkrétního zranitelného modulu. Projekt ModuleJail si klade za cíl zvýšit bezpečnost Linuxu zakázáním automatického načítání všech nepoužívaných jaderných modulů. Jedná se o skript, který dá všechny nepoužívané jaderné moduly na blacklist (/etc/modprobe.d/modulejail-blacklist.conf).
Mam jednoduchy program viz. nize. Ovsem problem je, kdyz se snazim prijmout znak pomoci preruseni generovaneho pri zaplneni prijimaciho bufferu (prijaty znak).
Kdyz nadefinuji makro SIGNAL(SIG_UART_RECV), pri prijeti znaku vsechno zatuhne- respektive cip nejevi znamky prace. Pritom by mel znak prijmout, ulozit a opet se vratit k posledni operaci, nemylim-li se?
Cip je ATtiny2313.
#include < avr/io.h>
#include < stdlib.h>
#include < util/delay.h>
#include < avr/interrupt.h>
#include < avr/pgmspace.h>
#define F_CPU 8000000
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#define DATA_1 PB0 //1. pin s prevodnikem
#define DATA_2 PB1
#define CLK PB7
#define CS PB6
#define U_REF 5000
#define AD_const (U_REF/256)
typedef unsigned char uc8;
typedef unsigned int ui16;
void usart_transmit(uc8 data);
void usart_transmit_string(const char *s);
void zmerit_u(void);
uc8 newline='\n', c;
void zmerit_u(void)
{
uc8 i, bity, hodnota1, hodnota2, buffer[10];
sbi(PORTB,CS);
_delay_ms(20);
cbi(PORTB,CS);
for(i=0,hodnota1=0, hodnota2=0, bity=128;i<8;i++)
{
if(bit_is_set(PINB,DATA_1))
hodnota1+=bity;
if(bit_is_set(PINB,DATA_2))
hodnota2+=bity;
bity>>=1;
sbi(PORTB,CLK);
cbi(PORTB,CLK);
}
usart_transmit(newline);
usart_transmit_string(itoa((hodnota1*AD_const), buffer, 10));
usart_transmit(newline);
usart_transmit_string(itoa((hodnota2*AD_const), buffer, 10));
}
void usart_transmit(uc8 data)
{
while(!(UCSRA & (1<< UDRE))); //pockame na vyprazdneni vysilaciho bufferu
UDR=data;
}
void usart_transmit_string(const char *s)
{
register uc8 ch;
while(ch=*s++)
{
usart_transmit(ch);
}
}
uc8 usart_receive()
{
while(!(UCSRA&(1<< RXC)));
return UDR;
}
SIGNAL(SIG_UART_RECV)
{
c=usart_receive();
}
void main (void)
{
/*nastavime vstupne vystupni porty*/
sbi(DDRB,CLK); /*enable port 9 for output*/
sbi(DDRB,CS);
sbi(DDRB,PD2);
cbi(DDRB,DATA_1);
cbi(DDRB,DATA_2);
UBRRH=0;
UBRRL=51;
UCSRB=(1<< TXEN)|(1<< RXEN)|(1<< RXCIE);
// UCSRC=(1<< USBS)|(3<< UCSZ0);
sei();
usart_transmit_string("#Starting Ronjamon..\n");
while(1)
{
if(c=='z') zmerit_u();
else if(c=='h') usart_transmit_string("Ronjamon, sith@wifistar.net\n");
cbi(PORTB,PD2);
_delay_ms(1000);
sbi(PORTB,PD2);
_delay_ms(1000);
}
}
SIGNAL (SIG_UART_RECV) { // USART RX interrupt
unsigned char c;
c = UDR;
usart_receive();
}
No, asi je uz pozde na odpoved, ale presto: neni blbost jeste testovat bit UDRE, kdyz jsme v preruseni? Pokud preruseni nastalo, tak je jasne, ze ceka v UDR dalsi byte prijaty z UARTu...
Tiskni
Sdílej: