abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 17:33 | Nová verze

    Byla vydána nová stabilní verze 7.6 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 140. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    dnes 16:22 | Nová verze

    Byla vydána verze 1.90.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    dnes 16:11 | Nová verze

    GNUnet (Wikipedie) byl vydán v nové major verzi 0.25.0. Jedná se o framework pro decentralizované peer-to-peer síťování, na kterém je postavena řada aplikací.

    Ladislav Hagara | Komentářů: 0
    dnes 12:11 | Nová verze

    Byla vydána nová major verze 7.0 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Nově je postavena je na Debianu 13 (Trixie) a GNOME 48 (Bengaluru). Další novinky v příslušném seznamu.

    Ladislav Hagara | Komentářů: 0
    dnes 04:44 | IT novinky

    Společnost Meta na dvoudenní konferenci Meta Connect 2025 představuje své novinky. První den byly představeny nové AI brýle: Ray-Ban Meta (Gen 2), sportovní Oakley Meta Vanguard a především Meta Ray-Ban Display s integrovaným displejem a EMG náramkem pro ovládání.

    Ladislav Hagara | Komentářů: 0
    dnes 01:11 | Nová verze

    Po půl roce vývoje od vydání verze 48 bylo vydáno GNOME 49 s kódovým názvem Brescia (Mastodon). S přehrávačem videí Showtime místo Totemu a prohlížečem dokumentů Papers místo Evince. Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře.

    Ladislav Hagara | Komentářů: 11
    včera 16:22 | Nová verze

    Open source softwarový stack ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán ve verzi 7.0.0. Přidána byla podpora AMD Instinct MI355X a MI350X.

    Ladislav Hagara | Komentářů: 0
    včera 15:22 | Nová verze

    Byla vydána nová verze 258 správce systému a služeb systemd (GitHub).

    Ladislav Hagara | Komentářů: 6
    včera 15:11 | Nová verze

    Byla vydána Java 25 / JDK 25. Nových vlastností (JEP - JDK Enhancement Proposal) je 18. Jedná se o LTS verzi.

    Ladislav Hagara | Komentářů: 0
    včera 14:44 | Humor

    Věra Pohlová před 26 lety: „Tyhle aféry každého jenom otravují. Já bych všechny ty internety a počítače zakázala“. Jde o odpověď na anketní otázku deníku Metro vydaného 17. září 1999 na téma zneužití údajů o sporožirových účtech klientů České spořitelny.

    Ladislav Hagara | Komentářů: 9
    Jaké řešení používáte k vývoji / práci?
     (41%)
     (56%)
     (3%)
     (9%)
     (13%)
     (6%)
     (13%)
     (6%)
     (16%)
    Celkem 32 hlasů
     Komentářů: 4, poslední dnes 19:18
    Rozcestník

    Dotaz: i2c_smbus_read_byte_data

    Konqui avatar 2.12.2007 09:12 Konqui | skóre: 18 | blog: Konqui | Rožnov pod Radhoštěm
    i2c_smbus_read_byte_data
    Přečteno: 672×
    Zdravím.mám problém při kompilování nasledujícího kousku kódu
    /* compass.c
    #include  <errno.h>
    #include  <string.h>
    #include  <stdio.h>
    #include  <stdlib.h>
    #include  <unistd.h>
    #include  <fcntl.h>
    #include  <linux/i2c-dev.h>
    
    /* Note that the documentation for the compass states its address as 0xC0.
     * However, this includes the low bit which specifies read or write.
     * Linux i2c does not include this bit in this address, so the actual
     * address is 0xC0 shifted down, 0x60.
     */
    #define CMPS03_ADDR 0x60
    
    /* The important registers on the compass. Internal/test registers omitted. */
    #define CMPS03_SOFTWARE_REVISION 0x0
    #define CMPS03_BEARING_BYTE 0x1
    #define CMPS03_BEARING_WORD_HIGH 0x2
    #define CMPS03_BEARING_WORD_LOW 0x3
    #define CMPS03_CALIBRATE_CMD 0xF
    
    int main(int argc, char *argv[]) {
       char *end;
       int res,file;
       int e1;
       char filename[20] ;
       long funcs;
        
       int heading_byte, heading_word_h, heading_word_l;
       int bearing_long, bearing_degrees;
       
       sprintf(filename,"/dev/i2c-0");
       if ((file = open(filename,O_RDWR)) < 0) {
         e1 = errno;
         if (e1 != ENOENT) {
           fprintf(stderr,"Error: Could not open file '%s' : %sn",
                   filename,strerror(e1));
           if(e1 == EACCES)
             fprintf(stderr,"Run as root?n");
         }
       } 
       
       
       /* Get software revision number */
       res = i2c_smbus_read_byte_data(file, CMPS03_SOFTWARE_REVISION);
       if (res < 0) {
         printf("Cannot read software revision leveln");
       } else {
         printf("Software revision level: %02xn", res);
       }
       
       /* Loop and read from the compass. */
       while (1) {
         /* The heading byte is 0-255 for the 360 degrees. */
         heading_byte = i2c_smbus_read_byte_data(file, CMPS03_BEARING_BYTE);
         if (heading_byte < 0) { printf("Error reading from compass."); exit(1);}
         
         /* The high resolution heading is given in two registers, and is 10 * the 
          * heading in degrees, ie 359.9 degrees reads as 3599. */
         heading_word_h = i2c_smbus_read_byte_data(file, CMPS03_BEARING_WORD_HIGH);
         if (heading_word_h < 0) { printf("Error reading from compass."); exit(1);}
         heading_word_l = i2c_smbus_read_byte_data(file, CMPS03_BEARING_WORD_LOW);
         if (heading_word_l < 0) { printf("Error reading from compass."); exit(1);}
         
         /* Combine the two bytes, and get the heading in degrees. */
         bearing_long = heading_word_h * 256 + heading_word_l;
         bearing_degrees = bearing_long / 10;
         
         printf("Bearing: %d \n", bearing_degrees);
         
         /* Wait for a while. */
         usleep(200000);
       }
    }
    
    Kompilace vyhodí vždy tyto chyby:
    [honza@AMD2000 ~]$ cc i2c.c
    i2c.c:97:2: warning: no newline at end of file
    /tmp/ccNQKa9S.o: In function `main':
    i2c.c:(.text+0xbe): undefined reference to `i2c_smbus_read_byte_data'
    i2c.c:(.text+0xfb): undefined reference to `i2c_smbus_read_byte_data'
    i2c.c:(.text+0x12f): undefined reference to `i2c_smbus_read_byte_data'
    i2c.c:(.text+0x163): undefined reference to `i2c_smbus_read_byte_data'
    collect2: ld returned 1 exit status
    
    Nevíte někdo co s tím?
    Open/save dialogy z GTK+ jsou nejkřiklavější ukázkou toho nejdebilnějšího software, co vůbec může existovat.

    Odpovědi

    2.12.2007 20:06 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
    Rozbalit Rozbalit vše Re: i2c_smbus_read_byte_data
    No chybí tě deklarace funkce "i2c_smbus_read_byte_data" takže ti asi chybí nějakej hlavičkový soubor, nebo používáš špatnou knihovnu kde se ta funkce jmenuje jinak.
    2.12.2007 20:10 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
    Rozbalit Rozbalit vše Re: i2c_smbus_read_byte_data
    PS. Nemá tam být include <linux/i2c.h>
    e.lisak avatar 2.12.2007 22:22 e.lisak | skóre: 23
    Rozbalit Rozbalit vše Re: i2c_smbus_read_byte_data
    podle te posledni radky to vypada spise na chybejici knihovny
    (collect2: ld returned 1 exit status)

    zkuste pridat parametr -li2c (nebo neco v tom smyslu - pridani i2c knihovny)

    Konqui avatar 5.12.2007 09:15 Konqui | skóre: 18 | blog: Konqui | Rožnov pod Radhoštěm
    Rozbalit Rozbalit vše Re: i2c_smbus_read_byte_data
    Při přidání parametru cc -li2c řekne, že daný parametr nezná.Nemáte nějaké jiné nápady?
    Open/save dialogy z GTK+ jsou nejkřiklavější ukázkou toho nejdebilnějšího software, co vůbec může existovat.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.