1
Hardware / Re:Rychlonabíječka pro mobil Sony Xperia 10 III
« Poslední příspěvek od LolPhirae kdy Dnes v 19:45:11 »Fascinující, nad čím lidi zvládnou několik dní bádat. Nicméně někdy kolem Black Friday jsem kupoval tohle za cca 40€.
#define config_pio_out( port, bits ) \
port->PIO_PER = bits; \
port->PIO_OER = bits; \
port->PIO_PUDR = bits;
#define update_pio( port, bits, enable ) \
if (enable) { \
port->PIO_SODR = bits; \
} else { \
port->PIO_CODR = bits; \
}
/*
OCRX[8:1] = PC[27:20]
OCTX[8:1] = PD[7:0]
*/
#define OPTO_TX_DEFAULT 0x00
#define OPTO_TX_OFFS 0
#define OPTO_TX_MASK ( PIO_PD7 \
| PIO_PD6 \
| PIO_PD5 \
| PIO_PD4 \
| PIO_PD3 \
| PIO_PD2 \
| PIO_PD1 \
| PIO_PD0 )
void config_digital_out(void) {
// for ODSR to work?
PMC->PMC_PCER0 = 1 << ID_PIOD;
// classic
config_pio_out( PIOD, OPTO_TX_MASK );
update_digital_out( OPTO_TX_DEFAULT );
}
void update_digital_out( unsigned bits ) {
#if 1
PIOD->PIO_ODSR = ( PIOD->PIO_ODSR & ~(OPTO_TX_MASK) )
| ( (bits<<OPTO_TX_OFFS) & (OPTO_TX_MASK) );
#else
update_pio( PIOD, PIO_PD7, bits & BIT(7) );
update_pio( PIOD, PIO_PD6, bits & BIT(6) );
update_pio( PIOD, PIO_PD5, bits & BIT(5) );
update_pio( PIOD, PIO_PD4, bits & BIT(4) );
update_pio( PIOD, PIO_PD3, bits & BIT(3) );
update_pio( PIOD, PIO_PD2, bits & BIT(2) );
update_pio( PIOD, PIO_PD1, bits & BIT(1) );
update_pio( PIOD, PIO_PD0, bits & BIT(0) );
#endif
}
// ./system/CMSIS/Device/ATMEL/sam.h
#include <sam.h>
#include <libsam/include/pmc.h>
:
int main( int argc, char *argv[] ) {
/* Initilize the SAM3 system */
SystemInit();
config_digital_out();
while(1) {
static unsigned n = 0;
n = ( n + 1 ) & 0xFF;
update_digital_out( n );
}
return 0;
}
Jenom takový kontrolní dotaz: ten disk asi nemá SATA? U chcíplých disků fungovalo SATA + ddrescue daleko lépe a rychleji, než USB s tím stálým USB reset ...
Trochu OT, ale kdyz vidim requirements.txt, to je hadí pravěk.Většina OK, ale ta sekce "le example" je docela děs (ten "web fetcher nicely encapsulated in a dataclass", kde je potřeba 7 řádků komentářů vysvětlujících ty prasárny, co musí udělat, aby mohl použít nějakou pochybnou knihovnu). S tím souvisí i sekce "basically every python class should be a dataclass going forward with no exceptions", WTF.
-> https://matt.sh/python-project-structure-2024