Skocz do zawartości

Wysylanie/odbieranie danych na mikroprocesorze przez USB


M@ti002

Rekomendowane odpowiedzi

Witam.

 

Dawno mnie tu nie bylo. Nie mam pojecia, czy ktokolwiek mnie jeszcze pamieta, ale mniejsza z tym.

Jako ze postanowilem 2 lata temu wziac sie "na powaznie" za programowanie, zachcialo mi sie studiow. A na studiach kazali nam zrobic projekt.

Konkretnie chodzi o cos takiego: Jest sobie mikroprocesor ARM Cortex M3 - LPC1337, ktory posiada m.in. 8 pinow, do ktorych mozna podlaczyc np. generatory napiecia oraz port USB. Mikroprocesor ma za zadanie odebrac te napiecia (no to najlepiej zapewne to zrobic w tablicy 8 - elementowej) i wyslac caly "pakiet" czyli tablice na port USB, ktorym dane pojda do komputera stacjonarnego. Na PC trzeba napisac drugi program, ktory odbierze te dane i zacznie rysowac wykres na ich podstawie. Rysowanie wykresu to pestka, juz to mamy zrobione, jednak problem jest z odbieraniem i wysylaniem danych.

 

Po pierwsze: Nie wiemy na jakie wysylac i z jakich adresow pobierac dane (Potrzeba adresow: kazdego pinu, portu USB na mikroprocesorze i USB w PC)

Po drugie: Nie mamy nawet jak sprawdzic dzialania calosci, bo po prostu nie posiadamy procka

 

Jedyne co dostalismy w "prezencie" od prowadzacego to kawalek kodu odpowiadajacy za wysylanie i odbieranie danych (forma najogolniejsza, bez gotowcow, a wiec i bez adresow) no i jestesmy w kropce.

Moze jestem slepy z tymi adresami, tutaj manual do procka: http://www.nxp.com/documents/data_sheet/LP...17_45_46_47.pdf

 

A tutaj kod, ktory mamy teraz (w zasadzie to tylko zdefiniowane funkcje, a i to nie do konca, bo tutaj wysylane maja byc dane typu int, a nie tablica, ale to najmniej istotne narazie):

unsigned char pobierz(unsigned short adres)
{
    short dane=0;
    
    _asm{
            mov dx    ,adres
            in ax    ,dx
            mov dane    ,ax
        }
        
    return dane;
}

void wyslij(unsigned short adres, short dane)
{
    _asm{
            mov dx    ,adres
            mov ax    ,dane
            out dx    ,ax
        }
}

int main()
{
    //costam
}

 

No i moje pytanie - czy znajdzie sie tu moze ktos, kto w miare ogarnia temat mikroprocesorow i wie, gdzie szukac adresow pinow i USB mikroprocka i PCta i dalby jakies wskazowki, jak to ogarnac?

No i wybaczcie, jezeli dzial nieodpowiedni - niby projekt w C++, ale wstawki assemblerowe sa.

 

Pozdrawiam :)

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 miesiące temu...

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...