Poslanci Evropského parlamentu dnes vyzvali k výraznému zvýšení ochrany nezletilých na internetu, včetně zákazu vstupu na sociální sítě pro osoby mladší 16 let. Legislativně nezávazná zpráva, kterou dnes odsouhlasil Evropský parlament poměrem 493 hlasů pro ku 92 proti, kromě zavedení věkové hranice 16 let pro využívání sociálních sítí, platforem pro sdílení videí či společníků s umělou inteligencí (AI) vyzývá také k zákazu … více »
Doom v KiCadu nebo na osciloskopu? Žádný problém: KiDoom: Running DOOM on PCB Traces a ScopeDoom: DOOM on an Oscilloscope via Sound Card.
Po AlmaLinuxu byl v nové stabilní verzi 10.1 vydán také Rocky Linux. Přehled novinek v poznámkách k vydání.
Open source reimplementace počítačových her Tomb Raider I a Tomb Raider II spolu s dalšími vylepšeními a opravami chyb TRX byla vydána ve verzi 1.0. Jedná se o sloučení projektů / enginů TR1X a TR2X do jednoho TRX. Videoukázka na YouTube.
Společnost Seznam.cz spouští konverzační nástroj založený na umělé inteligenci Seznam Asistent. Asistent využívá vlastní jazykový model SeLLMa a dočasně i komerční modely od OpenAI provozované v evropských datacentrech prostřednictvím Microsoft Azure. Dlouhodobým cílem Seznamu je provozovat Asistenta výhradně na interních jazykových modelech a ve vlastních datových centrech.
Software LibrePods osvobozuje bezdrátová sluchátka AirPods z ekosystému Applu. Exkluzivní funkce AirPods umožňuje využívat na Androidu a Linuxu. Díky zdokumentování proprietárního protokolu AAP (Apple Accessory Protocol).
Byl vydán AlmaLinux OS 10.1 s kódovým názvem Heliotrope Lion. S podporou Btrfs. Podrobnosti v poznámkách k vydání.
Placená služba prohledávání zprostředkovatelů dat a automatického odstraňování uniklých osobních údajů Mozilla Monitor Plus bude 17. prosince ukončena. Bezplatná monitorovací služba Mozilla Monitor bude i nadále poskytovat okamžitá upozornění a podrobné pokyny k omezení rizik úniku dat. Služba Mozilla Monitor Plus byla představena v únoru loňského roku.
Waydroid (Wikipedie, GitHub) byl vydán v nové verzi 1.6.0. Waydroid umožňuje spouštět aplikace pro Android na běžných linuxových distribucích. Běhové prostředí vychází z LineageOS.
Příspěvek na blogu Raspberry Pi představuje novou kompletně přepracovanou verzi 2.0 aplikace Raspberry Pi Imager (YouTube) pro stažení, nakonfigurování a zapsání obrazu operačního systému pro Raspberry Pi na SD kartu. Z novinek lze vypíchnout volitelnou konfiguraci Raspberry Pi Connect.
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: