cwbe coordinatez:
101
63539
63556
3419116
3895879
6985077

ABSOLUT
KYBERIA
permissions
you: r,
system: public
net: yes

neurons

stats|by_visit|by_K
source
tiamat
K|my_K|given_K
last
commanders
polls

total descendants::2
total children::1
4 ❤️


show[ 2 | 3] flat


Dostal sa mi do ruk ethernet modul s cipom enc28j60, objednany z ebayu za <5$.
Tak som ho podla tutorialu pripojil k mojej improvizovanej DPS ktoru programujem pomocou USB ASP, nejde o standardny arduino shield ale o malu dosku ktora sa da niekam prisrobovat a ma 10 kolikov s 2.54mm roztecou rozlozenych v 2 radach.

enc28j60.jpg

Kniznicu som pouzil z archivu s nazvom: ethershield_v1.1_for_arduino_v1.0.zip
stiahnut sa da napr. tu
Pouzil som kod z examples prilozenych ku kniznici. Priklad bol na LED on/off a obsahoval nastavenie pevnej IP adresy a webserver ktory posielal velmi jednoduchy html kod po tom co browser klienta odoslal GET poziadavku a headers... obsah samozrejme ignorovany, to na co kniznica reaguje su parametre za znakom ?, tie kod dostane v bufferi, kto chce si moze napisat parser na viac parametrov ale tutorial iba na pevno porovnaval retazce ?led=on a ?led=off na ktore reagoval bud rozsvietenim LED alebo jej zhasnutim. Kniznica implementuje ping takze sa da pristroj pingnut, pokial kod nezamrzol. Kod zaberal nieco pod 5kB z mojej 8kB ROM. Pri kazdej komnunikacii ethernet doska blika co je uzitocne pri ladeni.

obrazok dosiek tu

Chcel som spravit krok dalej a pridal som tlacitko read ADC ktore spusti ADC prevod z pinu A0 a vrati webstranku so zmeranym cislom. Rozhodol som sa setrit pamatou a pouzil som hlavicku progmem.h a PROGMEM makro aby som presunul dlhe retazce s html kodom cisto do programovej pamate aby sa nemirrorovali v RAM... nakoniec by sa ten 1kB SRAM v atmega8 vycerpal.

Napriklad: prog_char retazec[] PROGMEM = "abcdef.....";
A teraz moja chyba... v kode som nadalej pouzival pole retazec ako obycajnu premennu v SRAM co sposobilo ze moj kod zamrzal alebo sa uplne menila jeho logika a spustali sa vetvy v programe ktore nemali. LED sa podarilo cez web zhasnut ale okamzite sa rozsvietila, nemala dovod, tiez webserver bezal ovela pomalsie ako spociatku.

Dovod chyby bol v tom ze som nepristupoval k datam ulozenym k ROM spravne cez progmem funkcie, napriklad strcpy_P(ciel_v_RAM, zdroj_v_ROM). Ta je priamo urcena na skopirovanie zdrojoveho retazca v ROM do buffera v RAM.
Akonahle som kod prepisal tak aby pouzival docasny buffer a kopirovanie ROM retazcov do neho, zahadne chyby zmizli.




00000101000635390006355603419116038958790698507706995730
Harvie
 Harvie      06.01.2013 - 19:38:18 , level: 1, UP   NEW
a udelal si s tim nejaky zajimavy projekt? treba ovladani svetla pres internet :-D

0000010100063539000635560341911603895879069850770699573007017112
NiO
 NiO      20.01.2013 - 17:03:10 , level: 2, UP   NEW
este nie, ale na mojej polnovyske meraju v dajakej mastali teploty a jeden ich pristroj si robili sami s nejakym MCU a celkom ich zaujalo keby tam nemusia pravidelne chodit osobne zbierat data, druha vec je ako mastal pripojit na internet