RE: HiTech 9,80 #asm se v tom topím

Miroslav Draxal evik na volny.cz
Úterý Duben 8 16:46:04 CEST 2014


Dobré odpoledne,

Tak nic kloudného jsem nevyggoglil, nakonec jsem to dal takhle a chodí to,i když to košer tedy není.  Ale chodí to.

 

typedef union {

 

    struct {

               int StrukturaPoveluAll;

               _VycetPoveluDS18B20 Povel;

               char Teplota_LSB;

               char Teplota_MSB;

               char;

    };

    struct StrukturaRead {

               char PoradiBitu; // kolikáty bit se přijímá

               char CRC;

               _VycetPoveluDS18B20; //Povel

               char; //TeplotaLSB;

               char; //Teplota_MSB

               char Work; // Work

    } Read;

} xDS18B20_status;

//--------------------------------------------------------------------------------

xDS18B20_status DS18B20_status;

//--------------------------------------------------------------------------------

 

void DS18B20_CRCcheck ()

{

    DS18B20_status.Read.PoradiBitu = 8; //pocet pripoctenych bitu 8

#asm

 

    PoradiBitu       set _DS18B20_status;

    CRC                  set _DS18B20_status + 1;

    Work                set _DS18B20_status + 5;

    

vypcr0:

    RRCF Work, f; //LSB do C

    BC vypcr3;

    BTFSC CRC, 7;

    goto vypcr4; //CRC (7) = 1, C = 0

vypcr1:

    BCF (STATUS), 0; //CRC (7).XOR.C = 0

    RLCF CRC, f;

vypcr2:

    DECFSZ PoradiBitu, f;

    GOTO vypcr0;

    RETURN;

vypcr3:

    BTFSC CRC, 7;

    GOTO vypcr1; //CRC (7).XOR.C = 0

vypcr4:

    MOVLW 18h; //CRC (7).XOR.C = 1

    XORWF CRC, f; //CRC.XOR.18h

    BSF (STATUS), 0;

    RLCF CRC, f;

    GOTO vypcr2;

#endasm

}

 

From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Miroslav Draxal
Sent: Sunday, April 06, 2014 1:27 PM
To: 'HW-news'
Subject: HiTech 9,80 #asm se v tom topím

 

Dobrý den,

Mějme 

 

typedef union {

 

    struct {

               int StrukturaPoveluAll;

               _VycetPoveluDS18B20 Povel;

               char Teplota_LSB;

               char Teplota_MSB;

               char;//Work

    };

 

    struct StrukturaWrite {

               char PoradiBitu; // kolikátý bit se odesílá

               unsigned WriteDruhaPolovina : 1; // (zápis 1 = lo5μs  hi65μs) , (zápis 0 = lo60μs hi10μs)   set= druhá polovina

               unsigned WriteHIlo : 1; // 1 = zapisuje se 1 (zápis 1 = lo5μs  hi65μs)

               unsigned BytAll10usWait : 1; // 1 = poslední bit byla 0 (zápis 0 = lo60μs hi10μs), čekej pouze 10μs a okamžitě jdi na další byt

               unsigned : 5;

               _VycetPoveluDS18B20; //Povel

               char; //TeplotaLSB;

               char; //Teplota_MSB

               char; // Work

    } Write;

 

    struct StrukturaRead {

               char PoradiBitu; // kolikáty bit se přijímá

               char;

               _VycetPoveluDS18B20; //Povel

               char; //TeplotaLSB;

               char; //Teplota_MSB

               char Work; // Work

    } Read;

} DS18B20_status_;

 

DS18B20_status_  DS18B20_status

 

Při pokusu přístupu

#asm

DECFSZ _DS18B20_status.Read.PoradiBitu, f;

#endasm

 

To hodí při překladu chybu 

../DS18B20.c:68: error: lexical error

../DS18B20.c:69: error: syntax error

C:\Users\Colombo\AppData\Local\Temp\ssno.:10494: error: lexical error

 

Nemáte tušení, jak k té struktuře přistoupit z bloku ASM?

 

Míra

------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20140408/3f4a34ba/attachment-0001.html>


Další informace o konferenci Hw-list