Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.
itemscope itemtype="https://schema.org/QAPage"

ATMega128 - programy w AVR Studio 4 - czujnik temperatury...

cezik 02 Gru 2007 16:32 5406 13
  • ATMega128 - programy w AVR Studio 4 - czujnik temperatury...

    #1
    Poziom 10  

    Witam!

    Mam za zadanie zrobic programy w Avr Studio (najlepiej w C) które będą odczytywały temperaturę z termometru i wyświetlały ją na LCD.
    Wszystko to na karcie EVBnet03 marki Propox.
    Dodatkowo program który obsługuje przyciski (góra, dół, prawo, lewo).

    Dodam tylko, że niestety jestem całkowicie zielony w tym temacie, przeszukałem całe forum i nie potrafiłem znaleźć programu który by zadziałał...

    Dzięki za pomoc!

    0 13
  • #2
    Poziom 34  

    A zainstalowałeś chociaż AVR studio, Proponuję zacząc od jakiejś dobrej lektury np Mikrokontrolery Atmega w praktyce wydawnictwa BTC

    0
  • #3
    Poziom 10  

    Rzecz w tym że nie mam czasu na lekturę.
    Po prostu potrzebuje program. Muszę zdać i zapomnieć.
    Wiem że urażam niejednego smakosza tematu z takim podejściem, no ale nie chce nikogo oszukiwać :)

    Dodano po 1 [minuty]:

    AVR Studio 4 oczywiście zainstalowane. Karta z mikrokontrolerem również.

    0
  • #4
    Poziom 34  

    Jaki czujnik chcesz użyć ? To podstawowa informacja .Ja napewno nie napisze za ciebie tego programu ani za punkty ani za kasę nawet jeśli miało by mi to zająć 20 min. Jak napiszesz to sam może kiedyś mi podziękujesz ... Tak na marginesie to nie dziwię sie że niektórzy nie mogą znaleźć pracy po studiach które zrobili ne tej zasadzie zdać i zapomnieć ...

    0
  • #5
    Poziom 10  

    Nie chce żeby ktokolwiek pisał mi ten program. Jeśli ktoś przypadkiem gdzieś takowy posiada (lub podobny), będę niezwykle wdzięczny. Jeśli nie, trudno.

    Czujnik: termometr cyfrowy DS1820.

    P.S. W branży pracować nie planuję, więc spokojna głowa :]

    0
  • #6
    Poziom 35  

    Nie rozumiem takiego podejścia.
    Piszesz że potrzebujesz zdać egzamin i zapomnieć.
    Jeśli egzamin to była jakieś ćwiczenia lub laboratoria, do tego jakieś wykłady. Tak więc zapewne masz jakieś materiały.
    Forum to nie jest sklep z pamiątkami, wchodzisz kupujesz i zapominasz.
    Mało tego w sklepie się płaci walutą wymienną, a Ty chcesz coś za darmo.
    Pomyśl nad tym i zastanów się nad swoim postępowaniem.
    Widząc twój dorobek na tym forum tak właśnie nas traktujesz, zakładasz konto, dostajesz co chcesz i o nas zapominasz.
    Nie tędy droga do wiedzy.

    0
  • #7
    Poziom 10  

    Ok. Przepraszam za najście. Poszukam w innym źródle. Zamykam temat.

    0
  • #8
    Poziom 37  

    mogę ci dać kod w ASMie do obsługi LCD znaczy jest to 2 punktowy miernik wilgoci z regulacją wentylatorami wilgoci taki "wilgocioregulator" Jest tam obsługa klawiatury ale niestety analizę programu musisz zrobić sam jest tam jakiś komentarz ale niewiele reszta jest w PDFie do AT Mega 8 jeśli chcesz to napisz na PW.
    Pozdrawiam
    PS ja też za ciebie nie napiszę tego. aha soft obsługuje 1 kanał ADC jeden LCD 2*16znaków eeprom wewnętrzny i timer chyba0

    0
  • #9
    Poziom 2  

    Siemka mam takiego gotowca. czujnik ds1820 + lcd. Wszystko napisane w C.
    Obsługe przycisków można pokazać na prostej gierce na lcd.

    0
  • #10
    Poziom 12  

    psooya napisał:
    jest to 2 punktowy miernik wilgoci z regulacją wentylatorami wilgoci taki "wilgocioregulator" J


    Przepraszam, że się wtrącę zaintrygował mnie ten "wilgocioregulator".
    Co on jeszcze potrafi, czy mogę zastąpić nim "grę wstępną" na zasadzie
    nastawiam i mam? :sm7:

    0
  • #11
    Poziom 37  

    Niestety beż żelu się nie obejdzie :D To urządzenie ma na celu włączyć wiatrak w jednym z 2 pomieszczeń gdy zadana wilgoć w pomieszczeniu przekroczy pewną granicę oraz go wyłączyć gdy poziom wilgoci spadnie po niżej pewniej granicy. hmmm można by to wykorzystać do sprawdzenia stopnia podniecenia :D bo pokazuje w %

    0
  • #12
    Poziom 23  

    Samuraj napisał:
    Nie rozumiem takiego podejścia.
    Piszesz że potrzebujesz zdać egzamin i zapomnieć.
    ...


    Może ja to lekko wyklaruję.
    Chodzi o to, że w przypadku niezaliczenia 3 na 12 laborek, trzeba powtarzać przedmiot.
    Niestety ocenianie, nie jest zbyt sprawiedliwe dla osób które nie miały nigdy styczności z programowaniem mikrokontrolerów. 1/6 roku na chwilę obecną już wie, że przedniot będzie powtarzać.

    Jeśli chodzi o wykłady. Cóż, są dobre, ale dla kogoś kto miał już z tym styczność. Zasadę działania prowadzący pokazywał na ARMie, ale raczej opisowo, nie praktycznie z punktu widzenia programowania.
    Problem z tą konkretną laborką jest taki, że tak naprawdę, prowadzący w przeciwieństwie do innych nie zamieścił żadnych programów typu Demo.
    No chyba, że jako demo studenci mają traktować umieszczony w folderze z materiałami NutOS... ale to chyba jakieś nieporozumienie.

    Cezik, programy wrzucę na nasze forum. A pan Loska i tak lajtowo podchodzi do sprawy, bo pozwala poprawiać...

    0
  • #13
    Poziom 9  

    Widzę dużo osób się tu udziela.
    Ja piszę pierwszy raz więc od razu przepraszam za to, że jestem laikiem.
    Ale do rzeczy.
    Jest płytka EVBNET03 na niej dodatkowo MMnet03 i MMusb232 no i wyświetlacz LCD. Problem jest w tym, że nikt nie umie dostać się do LCD normalnie przez płytkę (ponoć jakoś trzeba się odnosić do pamięci RAM) gdyż nie jest podpięty bezpośrednio pod wyjścia procka.
    Tutaj dokumentacja do płytki:
    http://157.158.12.1/kss/dydaktyka/materialy/TM/AVR/EVBnet03_pl.pdf

    http://157.158.12.1/kss/dydaktyka/materialy/TM/AVR/EVBnet03sch.pdf

    Czy ktoś z was jest w stanie powiedzieć (podpowiedzieć) jak "dostać" się do tego LCD pisząc program w C (AVR STUDIO) ??
    Z góry dzięki za odpowiedź.

    0
  • #14
    Poziom 16  

    Jęsli jeszcze potrzebne:)
    LCD masz połączony przez dekoder adresu.
    Wystarczy dane podać na adres 0xFF05 – rejestr danych, a instrukcje na 0xFF04 – rejestr instrukcji.
    Przyklad ( sprawdzany na ATMEGA128 EVB503 - wtedy mam inne adresy danych i instrukcji. W przykładzie zmieniłem na te które są Ci potrzebne w EVB03)

    #define LCD_instrukcje (*(unsigned char *) (0xFF04)) // Adres pamieci pod który wysłąmy instrukcje
    #define LCD_dane (*(unsigned char *) (0xFF05)) // Adres pamieci pod który wysłąmy dane

    ///////////////////////////////////////////
    // Procedura sterowania LCD
    /////////////////////////////////////////
    void LCD_steruj (int instrukcja)
    {
    LCD_instrukcje = instrukcja; // Wpisz instrukcje do adresu pamięci
    _delay_ms(2); // Odpowiednie opóznienie aby wykonała się pojedyncza instrukcja

    }


    /////////////////////////////////////////////////
    // Procedura inicjalizująca LCD
    ///////////////////////////////////////////////

    void LCD_start (void)
    {

    int i;
    // Odblokowanie zewnętrzne SRAM/XMEM
    MCUCR |= _BV(SRE);

    // Wybór stanu oczekiwania gdy
    // przestrzeń adresowa SRAM jest skonfigurowana jako jeden sektor

    // Czekaj jeden cykl maszynowy przy strobie zapisu/odczytu
    XMCRB &= ~_BV(1);
    MCUCR |= _BV(6);

    _delay_ms(15); // Czekaj 15 ms Na wykonanie się procedury zerującej sterownik LCD
    // Zawsze po włączeniu zasilania

    for (i=0;i<3;i++)
    {
    LCD_steruj(0x30); // Wyśli 0x30 do lcd

    }
    LCD_steruj(0x2);

    LCD_steruj(0x01); // Wyczyszczenie ekranu i przesuniecie kursora do pozycji początkowej
    LCD_steruj(0x0C); // Włączenie lcd, wyłączenie kursora, wyłączenie migania kursora
    LCD_steruj(0x38); // Interfejs 8 bitowy, 2 linie, matryca 5x10

    }

    //////////////////////////////////////////////////////////////////
    // Procedura wyświetlania pojedynczego znaku na LCD
    //////////////////////////////////////////////////////////////////

    void pisz_znak (char znak) // Procedura wyswietlcja pojedynczy
    {
    LCD_dane = znak; // Wpisuje pojedynczy znak na lcd
    _delay_us(50); // Opóznienie potrzebne do wyświetlenia jednego znaku
    }

    Pozdrawiam
    lech
    P.S Jak byś miał przykład na ADC pisane w C chętnie bym zobaczył, bo właśnie jestem w trakcie pisania tego.

    0