Witam,
Jestem poczatkujacym programista avr'ow, realizuje swoj pierwszy projekt (prace magisterska) i podczas rozwoju zmagam sie aktualnie z takim problemem:
Atmega jest zaprogramowana tak, by po odczytaniu znaku 'c' z protokolu usart oedslac wartosc z przetwornika A/C. Sprawdzajac to w programie Terminal - wyniki sa prawidlowe. Niestety w matlabie wychodza jakies dziwactwa. Gdy na nozke przetwornika dam ziemie (w programie Terminal dostaje poprawna odpowiedz 0000 0000) a w matlabie -- > ' ' (pusty cudzyslow), gdy podepne napiecie odniesienia (W terminalu 1111 1111) a w matlabie jakies dziwactwa, zdarza sie wtedy, ze dostane 6 bitow, albo 14. W przypadku wysylania charow - nie ma problemu. Tzn na literke c procek ma wyslac b i matlab to odczytuje bezblednie. Binarnie - nie wychodzi nic
Wklejam kod i licze na pomoc, bo wyrywam juz sobie wlosy z glowy:
pierwsza petla sluzy tylko do zapewnienia prawidlowego polaczenia.
Dodano po 1 [godziny] 47 [minuty]:
ok, po x -godzinach udalo mi sie rozwiazac problem:
zamiast fscanf nalezalo uzyc fread.
temat do zamkniecia!
pozdro
Jestem poczatkujacym programista avr'ow, realizuje swoj pierwszy projekt (prace magisterska) i podczas rozwoju zmagam sie aktualnie z takim problemem:
Atmega jest zaprogramowana tak, by po odczytaniu znaku 'c' z protokolu usart oedslac wartosc z przetwornika A/C. Sprawdzajac to w programie Terminal - wyniki sa prawidlowe. Niestety w matlabie wychodza jakies dziwactwa. Gdy na nozke przetwornika dam ziemie (w programie Terminal dostaje poprawna odpowiedz 0000 0000) a w matlabie -- > ' ' (pusty cudzyslow), gdy podepne napiecie odniesienia (W terminalu 1111 1111) a w matlabie jakies dziwactwa, zdarza sie wtedy, ze dostane 6 bitow, albo 14. W przypadku wysylania charow - nie ma problemu. Tzn na literke c procek ma wyslac b i matlab to odczytuje bezblednie. Binarnie - nie wychodzi nic
Wklejam kod i licze na pomoc, bo wyrywam juz sobie wlosy z glowy:
Kod: C / C++
pierwsza petla sluzy tylko do zapewnienia prawidlowego polaczenia.
Dodano po 1 [godziny] 47 [minuty]:
ok, po x -godzinach udalo mi sie rozwiazac problem:
zamiast fscanf nalezalo uzyc fread.
temat do zamkniecia!
pozdro