logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Arduino MEGA2560 i ADS7843 - problemy z komunikacją w Atmel Studio 6.0

avatar80 21 Mar 2013 23:23 1536 2
REKLAMA
  • #1 12094294
    avatar80
    Poziom 12  
    Witam Szanownych Kolegów oraz Koleżanki,

    Posiadam zestaw startowy Funduino2560, odpowiednik Arduino mega2560.
    Zakupiłem do tego nakładkę z LCD 240*320pix, oraz w/w układem do obsługi ekranu dotykowego.

    Korzystając z programu dostarczonego przez sprzedającego(źródło dla Arduino) wszystko działa jak należy.
    Ekran działa na dotyk, na ekranie rysowane są punkty.

    Z względu na to, że używam AtmelStudio w wersji 6.0, postanowiłem przepisać kod.
    Kod do LCD działa poprawnie, natomiast mam problem z uruchomieniem układu do obsługi TP.

    Symptomy:
    - brak komunikacji, lub jej problemy z w/w układem
    - w zależności od zastosowanej procedury odczytu, otrzymuję bardzo dziwne wyniki, które się w ogóle nie zmieniają


    Kroki jakie zrobiłem:
    - przepisanie kodu, prawie co do słowa. Jedyne co pozmieniałem, to dyrektywy z Arduino
    - kilkukrotne sprawdzenie numerów pinów z jego "normalnymi" nazwami
    - przeszukanie internetu
    - sprawdzenie kilku rozwiązań znalezionych on-line, żadna nie działa
    - proste debbugowanie przez RS232 i terminal
    - przejrzenie przykładu dla tego układu w AtmelStudio - bez rezultatu

    Po graniu hexa po kompilacji przykładowego programu z Arduino 1.0.3 wszystko działa jak należy.

    Poniżej podaję mój kod, na którym pracuję.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod



    Niestety nie mam dostępu do żadnego sprzętu diagnostycznego typu analizator stanów logicznych, oscyloskop itp.


    Serdecznie dziękuje za jakąkolwiek pomoc.
  • REKLAMA
  • Pomocny post
    #2 12099880
    Konto nie istnieje
    Poziom 1  
  • #3 12105571
    avatar80
    Poziom 12  
    Witam ponownie.

    Dzięki koledze Markowi, udało sie rozwiązać problem.
    Wcześniejszy kod był wzorowany na przykładzie z AtmelStudio, niestety nie chciało to współpracować.
    Kod z przykładu który otrzymałem wraz z LCD, napisany był w Arduino. Kompilacja przykładu, wgranie do uP, sprawiało, że układ działał.
    Postanowiłem, przepisać ten kod w AtmelStudio. I zaczęły się klocki - w pierwszym poście.

    Po przeczytaniu porad kolegi Marka, przysiadłem do noty katalogowej i przejrzałem każdą procedurę(nadawanie/odbiór) jeszcze raz.
    Okazało się, że źle generowałem sygnał zegarowy dla wysyłania danych - nie wiem tylko dlaczego działało to na przykładzie w Arduino.

    Później już było z górki, odbierane dane, zmieniały się w zależności od miejsca dotknięcia.

    Poniżej wstawiam działający kod. Zestaw został uruchomiony na płytce ATmega2560 rev.3, z nakładka LCD 320x240, na pojedyńczej płytce(czerwony laminat), na różnych aukcjach widziałem różne wersje tej nakładki(dwie płytki).

    Jeszcze raz dziękuje koledze Markowi, za naprowadzenie mnie na źródło problemów.

    Działąjący kod:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
REKLAMA