Vlákno názorů k článku Nejjednodušší online teploměr od Alex - Kam se pripojuje signal z druheho cidla? A...

  • Článek je starý, nové názory již nelze přidávat.
  • 6. 1. 2005 19:13

    Alex (neregistrovaný)

    Kam se pripojuje signal z druheho cidla? A jak pote nastavit c-softik aby to fajcilo?

  • 26. 1. 2005 20:56

    Kamil Sopko (neregistrovaný)

    treba na bit 4 pin 13 a volat 2x cteni(stejne je pootreba si upravit vystup u programku a asi dodelat naky vstup kdyz se u kompu meni IO port, aby se to nemuselo kompilovat (viz nase wifi masiny nemaj gcc, ale nastaveni vselijaky ;]))
    mozna by to chtello pridat diodu aby nedoslo k prepolovani a predrazenej odpor kvuli skratu????

  • 3. 11. 2008 12:46

    thovt (neregistrovaný)
    Tady je odkaz na dvě čidla .http://luv-i.net/?pg=pocasi_teplomer
    Ve zdrojovém kodu jsou tam chyby.

    Muj funguje

    Teplomer.c

    #include <stdio.h>
    #include <unistd.h>
    #include <sys/io.h>
    #include <stdlib.h>

    #define DATA 0x378
    #define STATUS DATA+1
    #define CONTROL DATA+2

    float ZmerTo (unsigned short naportu, unsigned char odkud, int stav)

    // funkce vraci teplotu ve st. Celsia
    // parametry
    // naportu - port na kterem se provadi mereni
    // odkud - bite na ktery je pripojen teplomer
    // stav - urcuje zda je vstup negovan

    #define DelkaCyklu 0xffff

    {
    int t0, t1, t2;
    int mask = (1 << odkud);
    t1=0;
    t2=0;

    for (t0 = 0; t0 < DelkaCyklu; t0++)
    // vlastní mereni
    if ((inb (naportu) & mask) == 0) t1++ ;

    // negace mereni v pripade, ze je port negovan
    t2=DelkaCyklu-t1;
    if (stav!=0){
    t1=t2;
    t2=DelkaCyklu-t1;
    };
    // vlastní vypocet teploty 16
    return ((((double)t2 / ((double)DelkaCyklu)) - 0.32) / 0.0047 +16);
    }

    int main (void)
    {
    if (setuid (0) < 0)
    {
    printf ("Program musi byt spusten rootem\n");
    exit (1);
    }
    if (ioperm (STATUS, 3, 1))
    {
    printf ("Program musi byt spusten rootem\n");
    exit (1);
    }
    if (ioperm (CONTROL, 3, 1))
    {
    printf ("Neni pristup na port\n");
    exit (1);
    }


    // nastaveni control portu na 1 tak aby na nem bylo +5V pro napajeni
    outb (52, CONTROL);

    // zmereni teploty
    //pro LPT port a pro teplomer zapojeny na PIN 15
    printf ("IN %4.1f \n", ZmerTo (STATUS, 3, 0));

    //pro lpt port a pro teplomer zapojeny na pin 10
    printf ("OUT %4.1f\n", ZmerTo (STATUS, 6, 0));

    // nastaveni control portu na 0 tak aby bylo vypnute napajeni cidla
    outb (55, CONTROL);

    return (0);
    }