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