Pokrewne
menu      BIG BIG problema
menu      problem z wyświetlaniem strony, wyświetla się skrypt zamiast strony
menu      Problem z serwerem RPS, serwer nie odpowiada
menu      MS Vista Business: Ubuntu Desktop 8.04 RPS przez NX Client Desktop Edition [Problem]
menu      Problem z instalacją Quick.Cms/Quick.Cart na 60gp
menu      głośniki 7.1 i Vista problem - brak dźwieku w bocznych głośnikach
menu      problem wyboru zasilania dla laptopa DELL (zasilacz samochodowy)
menu      Problem z mysql ERROR 2002 (HY000): Can't connect to local MySQL server through...
menu      Problem z FTP 530 Sorry, the maximum number of allowed clients (16) are already conne
menu      Samsung DVD-VR350 problem z kolorami, wszystko czarno-biale nawet MENU :(
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • exclamation.htw.pl
  • [AVRGCC] Problem UART na przerwaniach





    Pawel K - 12-04-2007 18:45
    [AVRGCC] Problem UART na przerwaniach
      Witam,
    chcialem wykozystac dobrodziejstwo transmisji szeregowoj
    wykozystyjacej przerwania i zaczynaja sie schody. ATMEGA128
    na 100% wylaczony tryb 103ki !!
    Przejzalem wiele przykladow i nic mi to nie rozjasnilo mojego
    problemu.
    Stowrzylem bufor, zapisalem do niego dane, zainicjowalem
    transmisje:

    if (Uart0Status == Tx_Busy || data == NULL) return false;
    else {
    TxPtr = data;
    TxPPtr = (uint8_t *)data;
    TxLen = 0;
    Uart0Status = Tx_Busy;
    UCSR0B |= _BV(UDRIE0);
    }

    w przerwaniu juz wycialem wszystko zeby wyeliminowac
    wszelkie bledy i wyglada tak:

    SIGNAL(SIG_UART0_TRANS){
    UCSR0B &= ~_BV(UDRIE0);
    Uart0Status = Tx_Ready;
    }

    kozystam jeszcze z 3ech przerwan:
    zewnetrzengo generowanego przez RTC co 1 sek,
    TIMERA0 do odczytu klawiatury oraz TIMERA1 w trybie PWM.

    Dodam ze mam wachdoga ustawionego na 2 sek. Resetowany jest
    w przerwaniu wywolywanym przez RTC co 1 sek.
    Problem z uartem polega na tym ze zawiesza mi caly uklad.
    Watchdog resetuje uklad po 2 sek po czym znowu zwisa .... i tak w kolko.
    Prosze o jakies sugestie ...

    pozdrawiam
    Pawel K





    Jurek Szczesiul - 12-04-2007 19:45

      Thu, 12 Apr 2007 18:24:10 +0200, na pl.misc.elektronika, Pawel K
    napisał(a):

    > UCSR0B |= _BV(UDRIE0);

    > SIGNAL(SIG_UART0_TRANS){

    Włączasz przerwanie "data register empty interrupt"
    a obsługujesz
    "transmit complete interrupt"
    - to dwie oddzielne rzeczy.
    Brak obsługi SIG_UART_DATA powoduje ciągły przeskok
    ( avrgcc) do obsługi bad interrupt - czyli w praktyce do ciągłego resetu
    tak jak u siebie obserwujesz.

    --
    Pozdrowienia
    Jurek Szczesiul




    Pawel K - 13-04-2007 16:45

      Jurek Szczesiul napisał(a):
    > Thu, 12 Apr 2007 18:24:10 +0200, na pl.misc.elektronika, Pawel K
    > napisał(a):
    >
    >> UCSR0B |= _BV(UDRIE0);
    >
    >> SIGNAL(SIG_UART0_TRANS){
    >
    > Włączasz przerwanie "data register empty interrupt"
    > a obsługujesz
    > "transmit complete interrupt"
    > - to dwie oddzielne rzeczy.
    > Brak obsługi SIG_UART_DATA powoduje ciągły przeskok
    > ( avrgcc) do obsługi bad interrupt - czyli w praktyce do ciągłego resetu
    > tak jak u siebie obserwujesz.
    >
    Dzieki pomoglo.
    Wstyd przyznac, ale pisalem to majac przed oczami Panski
    artykul w EP :) nie ma to jak kontakt "bezposredni"

    pozdrawiam
    Pawel K
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • konstruktor.keep.pl
  • Design by flankerds.com