Poslední příspěvky

Stran: [1] 2 3 ... 10
1
Studium a uplatnění / Re:Státní zákázky - má malý dodavatel šanci?
« Poslední příspěvek od registrovany123 kdy Dnes v 20:41:55 »
Pokud jste jako občan nespokojený, tak v první řadě si vyžádejte informace podle zákona o svobodném přístupu k informacím.

Není důvod, proč bych toto měl dělat v první řadě.

Nemá ale smysl se vylévat ve fóru

Nepravda, má to smysl.

ale přitom nebýt ochotný udělat ani zblo.

Založit topic ve foru a udělat analýzu není zblo.


Už se se mnou dál nepřetahuj, nejsem na takové blbé pindy zvědavý. Ignoruj mě i tenhle topic pokud ti přijde zbytečný.
2
Vývoj / Re:Pomoc s ARM periferií
« Poslední příspěvek od CFM kdy Dnes v 20:38:31 »
Podle specifikace C musí být int aspoň 16bit, takže by teoreticky mohl, a čekal jsem nějakou zákeřnost, když v tom figurovalo něco převzatého z Arduina ...
Ale jak říkáš, typicky je int podle architektury nebo aspoň těch 16bit.
3
Vývoj / Re:Pomoc s ARM periferií
« Poslední příspěvek od RDa kdy Dnes v 20:20:49 »
Btw proc myslis ze unsigned jsou 16-bit? Je to 32bit arm podle vseho. Samozrejme na AVR (mega/xmega) jsem pozival o hodne explicitnejsi typovani (pres u8/u16/u32) se snahou usetrit misto i vypocetni cykly, protoze to je nativne spis 8 bit nez 16. Tyhle prechody jsou vzdy za trest.. ale holt, nas zakaznik, nas pan :D
4
Vývoj / Re:Pomoc s ARM periferií
« Poslední příspěvek od CFM kdy Dnes v 20:17:46 »
Hlavně že to funguje a omlouvám se za podezdření z tak základní chyby :)
5
Studium a uplatnění / Re:Státní zákázky - má malý dodavatel šanci?
« Poslední příspěvek od Zopper kdy Dnes v 20:17:28 »
Boj s korupcí (ano, je to problém) je dle mého paradoxně jedním z důvodů aktuálního stavu. Dneska se kvůli tomu soutěží věci, kde by menší soukromá firma o soutěži ani nepřemýšlela.

+1. Ono to má i další důsledky. Nejde jen o existenci soutěže, ale i o všechno kolem.

Cena jako hodnotící kritérium je jednoznačná, snadno popsatelná a nedá se moc zpochybnit, na rozdíl od většiny ostatních věcí. A jak úředník někde dá razítko, musí počítat s tím, že do pár let ho někdo bude zkoušet tahat u soudu. Takže zatímco většina lidí by zahrnula historii dodavatele, minulé zakázky, kvalitu, a tak dál, do hodnocení, tak úředník pořádně nemůže.

Z oprávněného strachu o vlastní kůži (1) tedy úředníci na všech úrovních dělají zakázky tak, aby co nejvíc firem vyřadili už dopředu nějakou kvalifikací i tam, kde to není nijak cinknuté úplatkem nebo chystané pro jednoho dodavatele. Prostě co nejvíc to nastavit na kvalifikačních kritériích a doufat, že z toho nebude průšvih, kdy to vyhraje zcela neznámá firma bez dosavadního obratu a s majitelem na nějakých ostrovech, protože nabídla poloviční cenu oproti ostatním, která následně dodá nepoužitelný projekt, nebo zkrachuje bez výsledku...

(1) Viz třeba jak dlouho trvalo - 9 let - u Vlasty Parkanové v kauze CASA, než ji soud osvobodil. I odškodné dostala, ale kariéru a pověst má zničenou.
6
Vývoj / Re:Pomoc s ARM periferií
« Poslední příspěvek od RDa kdy Dnes v 20:13:12 »
Tak jsem na to prisel.

ODSR je navic maskovano "W" bity, na ktere se pristupuje OWER/OWDR (pripadne cteni pres OWSR, bohuzel na primy zapis masky tam neni polozka), takze spravny kod je nakonec tento:

Kód: [Vybrat]
void update_digital_out( unsigned bits ) {
    PIOD->PIO_OWDR = ~OPTO_TX_MASK;
    PIOD->PIO_OWER =  OPTO_TX_MASK;
    PIOD->PIO_ODSR = bits << OPTO_TX_OFFS;
}
7
Sítě / Re:Zbyl ještě nějaký použitelný tunnelbroker?!
« Poslední příspěvek od LolPhirae kdy Dnes v 19:48:30 »
Se spolehlivostí už je to horší, podle místa a výhledu na oblohu to má denně několik pár minutových nížší rychlost/packetloss/blackout problémů.

Oproti spolehlivosti Orbánlinku, který zcela náhodně a neohlášeně nefunguje třeba několik dní a nikdo nehodlá nic řešit jinak než přes doporučenou korespondenci od jednatele společnosti, to vypadá celkem lákavě...  :'(
8
Vývoj / Re:Pomoc s ARM periferií
« Poslední příspěvek od CFM kdy Dnes v 19:47:33 »
A je v ODSR očekávaná hodnota (tj. je to HW problém či konfigurace čipu) nebo se do OSDR nedostane správná hodnota (chyba v kódu) ... debugger či nějaký pomocný výpis?
Osobně bych si tipnul, že je to problém s velikostí typů a "unsigned bits" jsou 16bit na téhle architekřure a snažíš se to vyrotovat výš než 16bit, takže z toho vyjde nula? Nemám tyhle typy bez jasné velikosti rád, protože si nepamatuji, kterej překladač/architektura má jaké velikosti (navíc se to obvykle dá ovlivnit i nastavením překladače) ...
9
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€.
10
Vývoj / Pomoc s ARM periferií
« Poslední příspěvek od RDa kdy Dnes v 18:09:27 »
Myslím, že se tady najde i několik odborníků - řeším oživení a "BSP" pro projekt odvozený od Arduino DUE desky.

TLDR: Nefunguje mi zápis do PIO výstupů paralelně, jen skrze set/clear registry. Hodiny pro perfierii jsem povolil.


Relevantní kusy kódu:
Kód: [Vybrat]
#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
}

a

Kód: [Vybrat]
// ./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;
}


Po zmene #if 1 na #if 0 v update_digital_out(), se generuje pattern s frekvenci ktera je polovina/dvojnasobek kazdym dalsim bitem, pri pouziti ODSR se ale nic nedeje, vsechny piny jsou v nule. Mam tam nejaky preklep nekde? Nebo to co chci nejde udelat? Nebo jsem jen na neco dalsiho zapomnel? Nebo snad nejaka errata? :D

Kod pro SAM3X8E cpu jsem vzal z Arduino gitu: https://github.com/arduino/ArduinoCore-sam ale builduji si aplikaci uz mimo IDE, linkuji to skrze linker script a .a pro tu systemovou knihovnu z Arduina.

Ostatni veci funguji (jako SystemInit a pak mam i SysTick_Config a na nej navazany delay_ms, jen ten IO port ne a nevim kde je chyba - s temito mcu nedelam.

Arduino samotne nema IO primitiva na ovladani portu timto stylem, a hodiny pro periferii povoluje jen kdyz na portu je alespon jeden pin jako vstup (asi kvuli glitch filtru a prerusenim).
Stran: [1] 2 3 ... 10