Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Komunikacja UART na Atmega 8 błąd kompilacji [C]

21 Mar 2014 13:10 1923 21
  • Poziom 8  
    Posiadam książkę "język C dla mikrokontrolerów AVR od podstaw do awansowanych aplikacji" i w niej jest przykładowy program komunikacji "echo". Gdy go już przepisałem to przy kompilacji jest bardzo dużo błędów obstawiam że jakiejś biblioteki nie wczytuje ale nie widzę błędów a wy??
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Dla jasności już szukałem rozwiązania w necie ale nie mogłem znaleźć.
    To błędy:
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • Poziom 24  
    Masz wybrany procesor ATmega8, a tam jest tylko jeden uart. Czy przykład jest dla ATmega8 czy może dla 128? Nazwy rejestrów, gdzie są zgłoszone błędy mają w nazwie "1". Jeśli chcesz to skompilować dla ATmega8 to usuń te "jedynki", ale dodatkowo trzeba się przyjrzeć tym rejestrom czy nie ma między nimi różnic.
    Jeśli funkcja jest typu void to przy jej deklaracji lepiej jest to wyraźnie napisać, nie będziesz miał ostrzeżenia "function declaration isn't a prototype".
  • Poziom 8  
    Zmniejszyłem ilość błędów i nie wiem co zrobić z resztą:
    http://screenshooter.net/6254402/biyuder
    chodzi tu napewno o odwołanie do
    Kod: text
    Zaloguj się, aby zobaczyć kod

    no i wysłanie tego do atmegi takie zostały jedynie błędy kto wie co z nimi zrobić??
  • Poziom 24  
    W pierwszej lini musisz podać baudrate, np. 9600:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    W drugiem musisz podać jaki znak chcesz wysłać, np. odebrany z Rx tak jak miałeś poprzednio:
    Kod: c
    Zaloguj się, aby zobaczyć kod
  • Poziom 8  
    Ale właśnie o to chodzi, że tego kodu nie wyczytuje jako funkcji; zobacz sobie na kolor - on tego nie zaakceptował jako działanie, tylko jak zwykły napis i dlatego nie chce tego skompilować. Tak jak kolega wcześniej wspomniał, ja pracuję na atmega 8

    Dodano po 3 [minuty]:

    Kod: text
    Zaloguj się, aby zobaczyć kod

    Kod: text
    Zaloguj się, aby zobaczyć kod

    Aktualny kod z aktualnymi błędami.
    On po prostu nie rozpoznaje funkcji: USART_Init i send_USART
  • Poziom 28  
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Co to ma być? Przeczytaj podstawy języka C jak się przekazuje parametry do funkcji...
  • Poziom 8  
    Coś zmieniłem i obecnie został mi tylko błąd z tym send_UART
    http://screenshooter.net/6254402/shguruk

    Dodano po 1 [minuty]:

    Zacznijmy od tego że jestem zielony i pierwszy raz mam z tym do czynienia a większośc tego co zrobiłem do tej pory było oparte o tą książkę i o dane katalogowe atmegi 8

    Dodano po 35 [minuty]:

    Dobra poradziłem sobie wysyłam kod gdyby ktoś miał podobny problem:
    Kod: c
    Zaloguj się, aby zobaczyć kod



    Kolejnym problemem okazał się hyper terminal którego nie ma na systemie windows 7 więc pobieram go z internetu Hyper terminal prywate ediition. I dalej już się totalnie gubię.
    Jak to ustawić???[/syntax][/table]
  • Poziom 28  
    Nie wiem jak Hyper, ale ja korzystam z Putty jeśli chodzi o komunikację UART i jest prosty w obsłudze.
  • Poziom 8  
    O rany ile funkcji w tym putty :p mógłbyś powiedzieć po kroku co i jak??
  • Poziom 38  
    I jeszcze ten define i include w ciele funkcji. Katastrofa...
  • Poziom 8  
    Ale o co ci chodzi napisz jasniej.
  • Poziom 28  
    No w putty wybierasz serial wpisujesz numer portu i prędkość. A co do define i include w funkcji to tak się nie robi.
  • Poziom 8  
    Ale taka struktura była w książce. to jak ma byc poprawny kod. Ten bedzie w ogóle działał?? Napisałeś strasznie ogólnie o tym putty, skąd mam wiedzieć jaki serial, co za serial i tym podobne.
  • Poziom 8  
    tyle to sam zrobiłem i po wciśnięciu open. musze coś nadac żeby odebrać aja tam nie moge nadawać. i tu problem
  • Poziom 28  
    Co rozumiesz przez że nie możesz nadawać?
  • Poziom 8  
    Program echo polega na tym że ja wcisnę na klawiaturze jakiś klawisz a procek ma to zwrócić tylko najpierw murze mu to wysłać
  • Poziom 28  
    Mariusz.94 napisał:
    Program echo polega na tym że ja wcisnę na klawiaturze jakiś klawisz a procek ma to zwrócić tylko najpierw murze mu to wysłać


    Może zacznij od początku pokaż kod, pokaż schemat, podaj konfigurację programu putty, daj komentarze do kodu.
  • Poziom 8  
    To program który musiałem przerobić:
    Komunikacja UART na Atmega 8 błąd kompilacji [C]
    To program który zrobiłem na bazie danych katalogowych atmega 8:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Wszystko się ładnie kompiluje.
    A podpięcie do portu RS232 jest standardowo przez układ scalony Max232.
    Konfiguracja putty:

    Źle dodane obrazki usunąłem. Mirek Z.
  • Poziom 28  
    Skoro w komentarzu masz:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    To czemu w putty ustawiasz 1 bit stopu?
  • Poziom 8  
    Ustawiałem na 2 i to samo było