Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

MMnet01 i NutOs problemy

debbuger 29 Jan 2009 21:40 12132 52
  • #31
    adams03
    Level 12  
    Witam.
    ../nd.c: In function 'NutAppMain':
    ../nd.c:712: warning: implicit declaration of function '_ioctl' 
    Z tym sobie poradziłem ale zostały jeszcze pozostałe błędy. Może problem leży w złej konfiguracji nut/os??
  • #32
    jdn
    Level 12  
    w obecnej chwili jak rozumiem masz błąd:
    ../nd.c:726: error: 'devEth0' undeclared (first use in this function)
    ../nd.c:726: error: (Each undeclared identifier is reported only once
    ../nd.c:726: error: for each function it appears in.) 


    bez patrzenie w cały log widać że brakuje Ci deklaracji pod devEth0. Zobacz i poszukaj jak się nazywa to ethernetowe urządzenie. Wg mnie masz złą konfigurację mmneta(bardziej prawdopodobne) lub w tym kodzie jest literówka np może powinno być dev=Eth0. Obecnie nie bawię się już mmnetem więc nie mam jak Ci tego sprawdzić bo nie posidam sdk pod to. Ale dołącz logi z kompilacji - pełne. Dołącz jaką konfigurację używasz - i nie pisz że standartowej tylko wklej plik konfiga który się tworzy to może Ci pomogę jak będę miał chwilę i będę potrafił. Trzeba sobie zdać jeszcze sprawę że obecnie ethernut rozwijany jest pod znacznie mocniejsze procki ze znacznie innymi architekturami. Przechodzenie na wyższe wersji jest nie uzasadnione w przypadku żadnego z produktów firmy propox. Zdajcie sobie sprawę że osoba która to wymyśliła zrobiła to chyba 3lata temu i dawno nie pracuje w wymienionej firmie. Powoduje to niestety jak i w moim przypadku pewne problemy.(Chyba że ktoś to uaktualnił ale jak ja się zajmowałem tym tematem rok temu to wtedy wszystkie pdf były ok rok za stanem jaki powinnien być i trzeba było wszystko robić samemu bo rozbieżności były za duże).
    Polecam też wersje które wymienił debbuger to jest Windows XP service pack2, WinAVR-20070525 i ethernut-4.4.1.

    Tak poza tematem.U mnie jeszcze była zabawna sprawa bo z winxp+SP2 nie zawsze chce mi działać programator pod ST7LITE. A bez SP1 śmiga aż miło.

    P.S. Jak myślałeś że mmnet lub tanie układy to to czego szukasz i to super rozwiązanie to chyba się zdziwisz. moje odczucia po poznaniu ich to: są wolne i poza światem. Jeśli chcesz to mieć do projektu jak ten który ja umieściłem to w sumie oszczędzisz ok100zł. Na chwilę obecną polecam kupować platformy na procku Geode np. Alixa. Platforma jest po prostu o niebo lepsza. Nie wspomnę już że to 86, na której można uruchomić dowolnego linuksa. Jedna dystrybucja jest nawet od ręki pod niego przygotowana.
  • #33
    Kalvis
    Level 13  
    Robię wszystko zgodnie ze zdjęciami zamieszczonymi przez Debugera i mam niewielki problem. Mianowicie gdy włącze make all w Programers notepad to wyskakuje mi następujący błąd:
    MMnet01 i NutOs problemy
    Po co programowi plik urom.c skoro to on powinien go stworzyć?
    na zdjęciu dołączonym przez debugera wynik kompilacji jest inny:
    MMnet01 i NutOs problemy
    na niebiesko wyróżniłem fragment którym się moja i jego kompilacja różni. Nie wiem dlaczego tak jest skoro tę ścieżkę podawałem w pliku makefile w linijce crurom ale z jakichś powodów u mnie jej nie widzi.
    Najdziwniejsze jest to, że jak wgram do folderu z projektem plik urom.c z jakiegoś innego projektu to kompilacja przechodzi ale rzecz jasna ładują sie inne pliki strony i strona wygląda inaczej.
    Wie ktoś o co chodzi programowi?

    Problem rozwiązany.
    Wystarczyło dodać do zmiennych środowiskowych w windowsie: C:\ethernut-4.4.1\nut\tools\win32
    program się kompiluje prawidłowo choć nadal jest ta różnica w podsumowaniu ale narazie nie wnikam dlaczego. Zastanawia mnie tylko jeszcze jedna rzecz, a mianowicie dlaczego w pliku met są wyszczegulnione te wszystkie pliki które mają być dodane do urom.c skoro przy kompilacji program sam przeszukuje cały katalog i dodaje wszystko jak leci (wiem bo mi się tam jeden duży plik zawieruszył i był błąd kompilacji "file too big").
  • #34
    debbuger
    Level 10  
    Jeśli chodzi o problem Kalvis'a to można tak jak on proponuje lub co ja bym polecał czyli w folderach nutapp i nutbld jest tam plik NutConf.mk i należy w obu tych plikach zmienić polecenie CRUROM=crurom na CRUROM=C:\ethernut-4.4.1\nut\tools\win32\crurom.exe
    i powinno to ruszyć. Trzeba tak zrobić być wiersz poleceń wiedział jaką aplikacje ma odpalić by utworzyć plik urom.c z naszą stronką. Pliki nie mogą być za duże co oczywiste bo do ATMega128 nie wiele wciśniemy a musi tam się zmieścić kod programu jak i nasze dane w postaci stronki i ewentualnych plików jpg

    Dodam jeszcze że najnowsza wersja która się kompiluje to WinXP sp 2 ethernut-4.6.4 i WinAVR-20081205.

    Poza tym to co pisze jdn to sama prawda niestety
  • #35
    Kalvis
    Level 13  
    ostatnio kompilowałem Nutosa na laptopie z XP sp3 i tam dopiero cyrki były. Okazało się, że wszystkie slashe \ musialem przeżucic na / jak w linuksie i dopiero odpaliło. Naprawde ten system jest nieobliczalny.
  • #36
    Przemek_100
    Level 10  
    Witam wszystkich. Zajmuje sie ethernutem od jakiegos miesiaca i problemy ktore mie spotkaly to jest jakies szalenstwo!!!!!!. Od wielogodzinnych walk z samym srodowiskiem, poprzez uaktualnienia windowsa udalo mi sie zwalczyc to ze moje kody kompiluja sie bez bledow. Jednak wydawac by sie moglo ze dostrojone srodowisko to juz 90% sukcesu, niestety nie. Obecnie mam powazny problem z wlasnym kodem. Uzywam plytki kanami ethernut1, sciagniety przykladowy program http serwera dziala bez problemu, dziala wyswietlacz. Sek w tym ze dziala tylko na kompilacji bibliotek w wersji 4.1.. Obsluga wyswietlacza jest zrobiona poza ethernutem (w przykladzie ), sprawdzona przeze mnie na czystym avr dziala bezblednie. W programie przykladowym dziala takze bezblednie, ale kiedy sciagne najnowsze srodowisko 4.6.4 i je skompiluje to nie dziala, oczywiscie zrodla tego przykladu mam i kompiluja sie bezblednie w nowym srodowisku. dlaczego nie dziala?, nie mam pojecia, nic tego portu nie uzywa. ale oki, zaczolem sie zastanawiac moze system operacyjny nie pozwala na takie bezposrednie odwolania do portu np (PORTB &= 0xFF)i sam cos w tle robi
    wiec przerobilem przyklad i uzylem systemowych procedur takich jak GpioPinSetLow itp i zadziałaoo, juz sie cieszylem ale troszke ruszylem kod w innym miejscu pozoru nie majacym znaczenia do dzialania wyswietlacza i znowu nie dzial. Czy ktos moze wie o co chodzi?, dlaczego (mimo ze nowe srodowisko) wybieram wersje ethernut 1 wesja 13 f, czyli zgodna stara z moim sprzetem i lipa. co ciekawe watek serwera zawsze prawie dziala. Mam takze problemy z programowaniem procka, nieraz musze 3 razy zanim avrdude go zaprogramuje. Generalnie jak mi ktos pomoze z tym wyswietlaczem to go chyba ozloce -nie wiem czy ja jestem jakis bezmozgowiec czy ten system jest nie do ogarniecia. Pozdrawiam POMOCY!!!!!! Ponizej kod LCDka

    #include <avr/io.h>
    #include <dev/gpio.h>
    
    
    
    
    #define PortB 2
    
    #define CLR_E   GpioPinSetLow(PortB, 5);
    #define SET_E   GpioPinSetHigh(PortB, 5);
    #define CLR_RS  GpioPinSetLow(PortB, 7);
    #define SET_RS  GpioPinSetHigh(PortB, 7);
    #define CLR_RW  GpioPinSetLow(PortB, 6);
    
    
    
    
    
               
    static void delay(int a) { a*=20; while(a--) { int i;  for(i=0;i<255;i++);} }
    
    
    
    void LCD_DATA (char c)
    {
    
    GpioPortSetLow(2,0x0F);
    GpioPortSetHigh(2,c & 0xf);
    
    
    }
    
    
    
    void LCD_init(void)
    {
    //GpioPortConfigSet(PortB,0x255, GPIO_CFG_OUTPUT);   
    DDRB = (1<<6) | (1<<5) | (1<<7) | 0xf;
    //GpioPinConfigSet(PortB,6, GPIO_CFG_OUTPUT);
    //GpioPinConfigSet(PortB,5, GPIO_CFG_OUTPUT);
    //GpioPinConfigSet(PortB,7, GPIO_CFG_OUTPUT);
    CLR_RW;
    
    delay(200);             // Wait 20ms
    CLR_E;
    CLR_RS;
    
    //Set LCD_DATA to high nibble of Software Reset
    LCD_DATA(0x3);
    
    SET_E; CLR_E;   // Write data to display
    delay(50);              // Wait 5ms
    SET_E; CLR_E;   // Write data to display again (SW Reset)
    delay(50);              // Wait 5ms
    SET_E; CLR_E;   // Write data to display again (SW Reset)
    delay(50);              // Wait 5ms
    
    
    
    
    
    
    
    
    // Set LCD_DATA to high nibble of Function Set (4Bit)
    LCD_DATA(0x2);
    SET_E; CLR_E;   // Write data to display
    delay(4);
    
    // Set LCD_DATA to high nibble of Function Set : 4 bit, 2 lines, 5*7 font
    LCD_DATA(0x2);
    SET_E; CLR_E;   // Write data to display
    // Set LCD_DATA to lower nibble of Function Set : 4 bit, 2 lines, 5*7 font
    LCD_DATA(0x8);
    SET_E; CLR_E;   // Write data to display
    delay(4);               // Wait 400&micro;s
    
    // Set LCD_DATA to high nibble of Display On/Off Control : display off, cursor off, don´t blink
    LCD_DATA(0x0);
    SET_E; CLR_E;   // Write data to display
    // Set LCD_DATA to lower nibble of Display On/Off Control : display off, cursor off, don´t blink
    LCD_DATA(0x8);
    SET_E; CLR_E;   // Write data to display
    delay(4);               // Wait 400&micro;s
    
    
    // Set LCD_DATA to high nibble of Entry Mode Set : increment DD-RAM address, move cursor
    LCD_DATA(0x0);
    SET_E; CLR_E;   // Write data to display
    // Set LCD_DATA to lower nibble of Entry Mode Set : increment DD-RAM address, move cursor
    LCD_DATA(0x6);
    SET_E; CLR_E;   // Write data to display
    delay(4);               // Wait 400&micro;s
    
    
    CLR_RS;
    // Set LCD_DATA to high nibble of position table value
    LCD_DATA(0x8);
    SET_E; CLR_E;           // Write data to display
    // Set LCD_DATA to lower nibble of position table value
    LCD_DATA(0x0);
    SET_E; CLR_E;           // Write data to display
    
    delay(4);                       // Wait 400&micro;s
    
    
    return;
    }
    
    
    
    void LCD_putchar(unsigned char value)
    {
    LCD_DATA(((value>>4)&0xf));
    SET_RS;
    SET_E; CLR_E;
    LCD_DATA(((value)&0xf));
    SET_RS;
    SET_E; CLR_E;           
    CLR_RS;
    
    delay(4);                       // Wait 400&micro;s
    
    return;
    }
    
    
    
    
    void LCD_putstring(char *str)
    {
    while(*str) LCD_putchar(*str++);
    }
    
    
    
    void LCD_putstringn(char *str, int nchars)
    {
    while(nchars--) LCD_putchar(*str++);
    }
    
    
    
    
    void LCD_control(unsigned char dsp,unsigned char blink,unsigned char cursor)
    {
    unsigned char control;  // variable to generate instruction byte
    
    control = (0x08 + blink + cursor + dsp); // Cursor control
    
    CLR_RS;
    // Set LCD_DATA to high nibble of Display On/Off Control
    LCD_DATA(0x0);
    SET_E; CLR_E;   // Write data to display
    // Set LCD_DATA to lower nibble of Display On/Off Control
    LCD_DATA (control);
    SET_E; CLR_E;   // Write data to display
    
    delay(4);               // Wait 400&micro;s
    return;
    }
    
    
    
    
    
    void LCD_setpos(unsigned char p)
    {
    CLR_RS;
    LCD_DATA(8|(p>>4));
    SET_E; CLR_E;           // Write data to display
    // Set LCD_DATA to lower nibble of position table value
    LCD_DATA(p&0xf);
    SET_E; CLR_E;           // Write data to display
    delay(4);                       // Wait 400&micro;s
    }
    
    
    
    
    void LCD_clear()
    {
    LCD_setpos(0);
    LCD_putstring("                ");
    LCD_setpos(64);
    LCD_putstring("                ");
    }


    Kod proszę umieszczać w znacznikach [code], a nie [color]
    [zumek]
  • #37
    Kalvis
    Level 13  
    A z jakiego powodu nie możesz pracować na starszej wersji ethernuta? Jak tu już było wspominane złe dopasowanie wersji nutosa do WinAVR może być przyczyną sypania się wszystkiego. Ja też pracowałem najpierw na 4.6 ale po kłopotach i niekończących się błędach wróciłem do 4.1.1 i już problemów z kompilacją nie miałem
  • #38
    Przemek_100
    Level 10  
    Zainstalowalem wersje wlasnie 4.4,1 oraz WinAVR 20070525, tak jak poprzednio (mialem 4.6.4 i WinAvR i 2008..) i tak jak poprzednio kompiluje sie wszystko, uart dziala , serwer www dziala a wyswietlacz nie!. Ale wyawietlacz tym razme skonfigurowalem przed zbudowaniem bibliotek w (hd44780). Kiedy uzyje ponizszego kodu wyswietlacz sie inicjuje, ale za groma nie moge nic na nim wyswietlic funkcja fprintf, moze jeszcze trzeba mu podac parametry ale jak to zrobic???. Sa wkonfiguracji w nut configuratoeze jakies parametry (long delay i szort delay, ja tego nie dotykalem) Nieraz wyswietlacz wyswietli jakies znaki, ale nie zgodne z tym co wysylam. Oczywiscie wszystko sie ladnie kompiluje


    FILE *lcd;	
        NutRegisterDevice(&devLcd, 0, 0) ;
    	lcd =fopen("lcd","w") ; 
           fprintf(lcd, "zadzialaj wreszcie");
  • #39
    jdn
    Level 12  
    przeczytaj sobie dokładnie notę - datasheet do tego wyświetlacza(szczególnie tego sterownika), te czasy sa bardzo ważne bo odpowiadają za inicjalizację(chociaż przy odrobinie szczęścia uda Ci się zainicjalizować bez nich), oraz za to jak długo będą dane na szynie danych i jak szybko przełączy się enable mówiący że sterownikowowi wyświetlacza że wszystko dane są do pobrania. Ustaw te wartości na takie jak w moim poście na początku. Jak masz inny kwarc to potestuj z kilkoma wartościami. Jak wyświetlają się już krzaczki to już jesteś blisko :-) zawsze widać że działa coś, jakoś (nie mylić z jakość ;-) )
  • #40
    sakohq
    Level 2  
    Wilku wrote:
    Niby działa, w sieci lokalnej widać stronkę, ale w necie już nie widać. Router (D-link 524) nie ma na liście DHCP MMNET-a. Wie ktoś może jak go skonfigurować ? Bo może robię coś nie tak.....


    Jesli urzadzenie widac lokalnie, a z inetu nie, to mozliwe sa dwa problemy:
    1. jesli urzadzenie jest na publicznym IP, to nie ma ustawionej (prawidlowo) bramki lub odcina firewall na routerze
    2. jesli urzadzenie ma prywatne IP, to zeby bylo widoczne z Inetu, potrzebna jest oczywiscie bramka, jak w pkt1 oraz przekierowanie portu serwera http na routerze, co wykracza troche poza tematyke tego dzialu - polecam lekture instrukcji routera i sieci

    Jesli jednak jak podales nie ma urzadzenia na liscie DHCP, byc moze pobral adres wczesniej i pewnie teraz odczytuje go z eeprom, co nie wyklucza problemow z pkt 1 i 2

    debugger wrote:
    W sumie ethernut to wielkie badziewie i powiem tylko że sypie się to bez przerwy. (...)


    Bzdura. Poza tym polecam przejscie na wersje o 2 lata nowsze (zarowno winavr jak i ethernut), uzywanie takich staroci bylo mozliwe tylko za czasow Windows 95 :D A tak na powaznie, to w nowszych wersjach znaczaco poprawiono kompatybilnosc, nie wspominajac juz o funkcjonalnosci ...
  • #41
    kokos_eit
    Level 10  
    Wilku

    Jeżeli problem z nie widzeniem stronki w internecie to też to miałem rozwiązanie było proste trzeba użyć funkcji która dodaje wpis do tablicy routingu a następnie użyć funkcji konfigurującej dns i serwerek jest widziany z każdego miejsca na ziemi

    ma ktoś może plik konfiguracyjny do MMnet03 bo mam problem z tym układem nie mogę go odczarować:)
  • #42
    mutexxx
    Level 10  
    Próbuję zainstalować i skonfigurować całe środowisko Nut/OS, jednak mam pewien problem, otóż, korzystając z konfiguratora GUI nie tworzą się żadne pliki bibliotek, które powinny się utworzyć o czym mowa na stronie 24 poniższej instrukcji:
    http://www.ethernut.de/pdf/enswm28e.pdf

    Niestety nie jest napisane nic dlaczego. W tej konsoli programu jest napisane, że wszystko przebieglo ok.
    Pewnie w rezultacie tego nie tworzy się katalog ~/ethernut/nutapp/httpd o którym mowa na stronie 28
    W katalogu ~/ethernut/nutap tworzą się jedynie pliki:
    ~/ethernut/nutapp/Makedefs
    ~/ethernut/nutapp/Makerules
    ~/ethernut/nutapp/NutConf.mk
    ~/ethernut/nutapp/UserConf.mk

    Spróbowałem zatem opcji konfiguracji z linii poleceń o której mowa na stronie 26
    Jednak w tym przypadku, po wydaniu polecenia:
    nutconfigure -bnutbld -cnut/conf/MMnet01.conf -lnutbld/lib -mavr-gcc create-buildtree

    Pojawia się ta informacja:
    nutconfigure 2.0.9
    Loading ./nut/conf/repository.nut...failed

    Plik repository.conf oczywiście znajduje się w tym katalogu.
    Nie wiem czy to istotne, ale korzystam z ethernut wersja 4.8.7 - ostatnia stabilna i systemu MAC OS X

    Za wszelką pomoc megadzięki, bo pracuję nad projektem "na wczoraj".
  • #43
    sisu
    Level 12  
    mutexxx jeśli robisz coś "na wczoraj" to tylko Win XP, Ethernut 4.4.1 i odpowiedni WinAVR - wyczytasz na elektrodzie który jest jedynie słuszny do v4.4.1, żadne "ostatnie stabilne" i nie na Mac-u, nie uruchomisz tego bez poważnego uszczerbku systemu nerwowego ;)
    Takie jest moje zdanie i nie tylko moje, zwróć uwagę że jak ktoś coś już zrobił to tak radzi.
  • #44
    mutexxx
    Level 10  
    Ok, dzięki sisu, rzeczywiście, nie mam czasu na rozkminianie co nie tak, spróbowałem z tym 4.4.1 i kompilacja niby śmiga, reszta się okaże jak mi przyjdzie wreszcie MMnet01, na który czekam.

    Mam jednak pytanko, gdyż pamięć DataFlash zamierzam wykorzystać jak zwykły twardy dysk, z możliwością zapisu z mikrokontrolera, jednak wyczytałem właśnie:

    In addition, a preview release of a read-only FAT file systems is available, which
    requires additional hardware like an IDE or Compact Flash interface. This part is
    still under heavy development. Visit the project page on the Ethernut website
    and subscribe to the Ethernut mailing list for latest informations.

    Więc rozumiem, że narazie mogę z tego tylko czytać, a zapisywać przez programator, czy w najnowszych wersjach coś się zmieniło?

    Jednak natknąłem się na stronie Propoxu:
    Pakiet Adds jest oprogramowanie rozszerzającym Nut/Os
    - System plików w pamięci DataFlash (Wspiera standardowe procedury operacji na plikach)


    Więc rozumiem, że z tym pakietem będę mógł korzystać z tej pamięci jak z normalnego dysku, tak ?
  • #45
    kokos_eit
    Level 10  
    Mutexxx firma propox wzbogaciła ethernut o pakiet adds w którym zaimplementowano system plików w pamięci dataflash daje on możliwość tworzenia, zapisywania, otwierania plików w tej pamięci. Jedyną wadą jest że trzeba używać Ethernuta w wersji dosyć starej bo chyba 3.4.
  • #46
    mutexxx
    Level 10  
    Próbował ktoś wykorzystać pamięć DataFlash w tym układzie? Jeśli tak, to czy mógłby się podzielić działającym sterownikiem SPI do tego DataFlasha?
  • #47
    kokos_eit
    Level 10  
    Nie potrzeba sterownika ponieważ pakiet Adds zawiera obsługę systemu plików w pamięci flash.
  • #48
    rurek
    Level 11  
    Witam,
    Używam zestawu Kamami ZL9AVR + ZL1ETH (jak w kursie z EP). Żeby kompilować programy pod to wystarczyło skopiować katalog NutOS do WinAVR i użyć dołączonego pliku makefile. Próby samodzielnej instalacji środowska Ethernut np. wg opisu kol. debuggera nie dały pozytywnego rezultatu pod WINXP + SP3.
    Teraz chciałem użyć modułu MMnet01. Różni się on tylko innym adresem układu RTL8019 i większą ilością pomięci (nie używam akurat LCD). Teraz pytanie - co na szybko zmienić i gdzie żeby poprawnie kompilować programy pod ten moduł? Używam WinAVR 20070525 i Ethernuta 4.2.1.
    Dodam że po instalacji wg opisu debuggera pojawia się błąd "undeclared devEth0", w linijce: if (NutRegisterDevice(&DEV_ETHER, 0, 0))...
    Moduł oczywiście jest sprawny, po wgraniu propoxowego gotowca działa jak należy.
  • #49
    pawelqwert
    Level 2  
    Witam,
    nie mogę poradzić sobie z odpaleniem wyświetlacza LCD w NutOS'ie na płycie Propox'u EVBedu.net. Wyświetlacz to 2x16, wyświetla się tylko górna cała linia od momentu włączenia płyty, nie ważne czy coś do niego piszę, czy nie. Proszę o pomoc, nie do końca wszystko tu rozumiem chyba.
    Próbuję go odpalić tym fragmentem kodu:
    Code: cpp
    Log in, to see the code

    Funkcje niby że działają dobrze, tzn jest komunikat w terminalu, że "LCD registered" i "Device stream ready". Co mogłem źle ustawić?

    Fragment instrukcji płyty Propox:
    Quote:
    Wyświetlacz płyty LCD podłączono do magistrali danych mikrokontrolera. Wyświetlacz widziany jest w przestrzeni adresowej od 0xF000 do 0xFFFF, wybór pomiędzy rejestrem instrukcji a rejestrem danych wyświetlacza dokonywany jest przy pomocy linii adresowej A0 np.
    0xF000 – rejestr danych
    0xF001 – rejestr instrukcji
    Matryca LCD posiada kontroler HD44780U, którego sterowanie wymaga aby sygnał wyboru układu E (Enable) był aktywny w stanie wysokim, przy czym czas trwania impulsu dodatniego nie może być krótszy niż 100ns. Dodatkowo przy zapisie po zmianie stanu sygnału E z wysokiego na niski dane musza być jeszcze ważne przez 20ns. W celu spełnienia tych wymagań płyta posiada układ formowania sygnału selekcji wyświetlacza LCD.
    Sygnał ten jest generowany na podstawie sygnału z dekodera adresów oraz strobów /WR i /RD mikrokontrolera.
    Czas trwania impulsu E dla odczytu (linia /RD aktywna) równy jest długości impulsu na linii /RD.
    Natomiast czas trwania impulsu E dla zapisu (linia /WR aktywna) wynosi 125ns.
    Wybór między zapisem a odczytem dokonywany jest poziomem linii W/R, którą połączono z sygnałem /WR mikrokontrolera (schemat).


    Zrobiłem na tej podstawie ustawienia w NutOS Configurator:
    Quote:

    Rows = 2
    Columns = 16
    Data port = AVRPORTA
    Bits Data Port = 0xFF
    Enable Port = AVRPORTG
    Enable Bit = 1
    RS Port = AVRPORTA
    RS Bit = 0
    RW Port = AVRPORTG
    RW Bit = 0


    Pozdrawiam,
    P

    Aha, wszystko już się wyjaśniło - zamiast pliku nagłówkowego hd44780.h muszę użyć hd44780_bus.h. Szkoda, że nic nie było o tym w dokumentacji płyty i znowu problem rozwiązał się niejako przypadkiem, szczęśliwym trafem.
  • #50
    tomaszzielin
    Level 10  
    Czy implementował może ktoś z Was protokół MODBUS z wykorzystaniem system Nut/OS ?
  • #51
    tomaszzielin
    Level 10  
    Czyli nikt jeszcze nie próbował implementować Modbusa rozumiem. W takim razie będę chyba pierwszym który się tego podejmie.
    Mam pytanie odnośnie jeszcze podstaw konfiguracji a mianowicie nie potrafię ustawić portu odpowiedniego dla wyświetlacza HD44780 LCD 2x16 w konfiguratorze Nut/OS czy ktoś mógłby mi podpowiedzieć?
    Korzystam z Win7 Ethernut 4.64 i WinAVR 6...
    MMnet01 i NutOs problemy
  • #52
    nasiono
    Level 17  
    U mnie działa tak: MMnet01 i NutOs problemy

    Bity danych PD4-PD7
    Czasy dałem short 5 long 30
    A zakładki BUS nie trzeba ustawiać.
  • #53
    nasiono
    Level 17  
    Witam.
    Może mi ktoś powiedzieć jak czyści się wyświetlacz.
    Polecenie fprintf(..., ESC_CLR); nie działa pojawia się błąd :
    Quote:
    'ESC_CLR' undeclared (first use in this function)

    Co jest dziwne bo według noty Link
    powinno być to zdefiniowane