eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaPowolność programatora STK500v2Re: Powolność programatora STK500v2
  • Path: news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!feeder.erje.net!
    feed.xsnews.nl!border-1.ams.xsnews.nl!feeder3.cambriumusenet.nl!feed.tweaknews.
    nl!209.197.12.242.MISMATCH!nx01.iad01.newshosting.com!209.197.12.246.MISMATCH!n
    x02.iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-01.news
    .neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mail
    From: Grzegorz Kurczyk <g...@c...slupsk.pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: Powolność programatora STK500v2
    Date: Fri, 05 Mar 2010 09:32:21 +0100
    Organization: TP - http://www.tp.pl/
    Lines: 41
    Message-ID: <hmqfnf$12m$1@atlantis.news.neostrada.pl>
    References: <hmeof4$76$1@nemesis.news.neostrada.pl>
    <hmike1$1h$1@atlantis.news.neostrada.pl> <hmk345$3kb$1@news.onet.pl>
    <hmk4q2$m5u$1@atlantis.news.neostrada.pl> <hmms9f$kq1$2@news.onet.pl>
    <hmph65$q52$1@atlantis.news.neostrada.pl>
    <7...@t...googlegroups.com>
    NNTP-Posting-Host: control.slupsk.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: atlantis.news.neostrada.pl 1267778095 1110 80.52.170.66 (5 Mar 2010 08:34:55
    GMT)
    X-Complaints-To: u...@n...neostrada.pl
    NNTP-Posting-Date: Fri, 5 Mar 2010 08:34:55 +0000 (UTC)
    User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); pl; rv:1.9.1.7) Gecko/20100111
    Thunderbird/3.0.1
    In-Reply-To: <7...@t...googlegroups.com>
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:583781
    [ ukryj nagłówki ]

    W dniu 05.03.2010 07:29, hobgoblin pisze:
    > Uzywasz kernela 2.4? W 2.6 "tick" jest 10x krotszy (10ms->1ms). Nie
    > znam implementacji tcdrain ale prawdopodobnie nie czeka ona na
    > zakonczenie transmisji w petli, a oddaje CPU schedulerowi.

    Jajko z serii 2.6.

    >
    > Zamiast tcdrain sprobuj uzyc (nie sprawdzalem w praktyce):
    >
    > do {
    > ioctl(handle, TIOCSERGETLSR,&lsr);
    > } while (lsr& TIOCSER_TEMT);
    >

    Właśnie coś w tym stylu kombinowałem, ale podpowiedź Kolegi bardzo dużo
    mi pomogła. Działa, z drobną poprawką. Odwrotny warunek przy while.
    Potrzebne mi to jest m.inn. do wysyłania danych przez bufor RS485
    sterowany sygnałem RTS. W efekcie końcowym wyszło coś takiego:

    ioctl(handle, TIOCMGET, &status);
    status &= ~TIOCM_RTS;
    ioctl(handle, TIOCMSET, &status);

    write(handle, Out_data, strlen(Out_data));
    do {
    ioctl(handle, TIOCSERGETLSR, &lsr);
    } while(!(lsr & TIOCSER_TEMT));

    ioctl(handle, TIOCMGET, &status);
    status |= TIOCM_RTS;
    ioctl(handle, TIOCMSET, &status);

    Wygląda niby dobrze, ale na oscyloskopie widzę niekiedy taką sytuację,
    że RTS przeszło na moment w stan aktywny (ok 20..30us), a nie poszedł
    żaden bajt. Po południu sprawdzę czy ta "ramka" jest gubiona czy
    faktycznie wychodzi z następnym aktywnym RTS.

    Dzięki za podpowiedź.
    Pozdrawiam
    Grzegorz

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: