Você está na página 1de 3

30/07/2021 1 fio / DS2431.

c no mestre · bencon / 1 fio · GitHub

Bencon / 1 fio

Código Problemas Solicitações de pull Ações Projetos Wiki Segurança Intuiçõ


mestre

1 fio / DS2431.c

bencon adicionou dispositivo de 20k


0 contribuidores

101 linhas (93 sloc)



3,15 KB

1 # inclui " main.h "


2 # inclui " oneWire.h "
3 # inclui " DS2431.h "
4 # include < hidef.h > / * definições comuns e macros * /
5 # incluir " derivative.h " / * definições específicas de derivativos * /
6
7 informações externas do oneWire;
8 extern DS2431 status_2431;
9 extern Bool T_EN;
10 extern Bool R_EN;
11 extern uint8_t temp; // dummy para limpar o sinalizador de recebimento de SCI4 completo
12 extern uint8_t SCI1TOBESENT; // use isso apenas quando você tiver um único chip de 1 fio no ba
13
14 // len determina o número de linhas para as quais você deseja copiar os mesmos 8 bytes
15 // como há 16 linhas graváveis, 16 deve ser o maior tamanho
16 vazio copyScratch_2431 ( uint8_t dados [ 8 ], uint16_t endereço, uint8_t romNum, uint8_t len)
17 uint8_t debug;
18 int i;
19 int j;
20 para (j = 0 ; j <len; j ++) {
21 reset ();
22 writeByte (MATCHROM);
23 writeROM (status_2431. romTable [romNum]);
24 writeByte (DS2431_WRITESCRATCH);
25 for (i = 0 ; i < 2 ; i ++) { // escreva o byte menos significativo e o mais significativo
26 debug = (endereço >> ( 8 * i)) & 0xFF ;
27 writeByte ((endereço >> ( 8 * i)) & 0xFF );
28 }
29 para (i = 0 ; i < 8 ; i ++) {
30 writeByte (dados [i]);

31 }
32 readScratch_2431 (romNum);

https://github.com/bencon/1-wire/blob/master/DS2431.c 1/3
30/07/2021 1 fio / DS2431.c no mestre · bencon / 1 fio · GitHub
33 reset (); // redefinir?
34 writeByte (MATCHROM); //
35 writeROM (status_2431. romTable [romNum]); //
36 writeByte (DS2431_COPYSCRATCH);
37 para (i = 0 ; i < 3 ; i ++) {
38 writeByte (status_2431. scratchpad [i]);
39 }
40 endereço = endereço + 8 ;
41 DelayUs ( 800 );
42 }
43 // DelayMs (300);
44 // readMemory_2431 (romNum, endereço, len); // pode não querer isso aqui
45
46 }
47
48 // Destina-se a definir toda a memória para FF para que o modo EPROM funcione. Provavelmente de
49 void setOnes_2431 ( uint8_t romNum, BOOL readMem) {
50 uint8_t ind;
51 uint16_t add = 0x0000 ;
52 uint8_t uns [] = {{ 0xEF }, { 0xEF }, { 0xEF }, { 0xEF }, { 0xFF }, { 0xFF }, { 0xFF }, { 0
53 para (ind = 0 ; ind < 16 ; ind ++) {
54 adicionar = ind * 8 ;
55 copyScratch_2431 (uns, adicionar, romNum, 1 );
56 }
57 if (readMem) {
58 readMemory_2431 (romNum, 0x0000 , 128 ); // opcional
59 }
60 }
61
62 // lê o rascunho e coloca os dados na memória do rascunho fornecida
63 void readScratch_2431 ( uint8_t romNum) {
64 reset (); // redefinir necessário?
65 writeByte (MATCHROM);
66 writeROM (status_2431. romTable [romNum]);
67 writeByte (DS2431_READSCRATCH);
68 storeData ( 20 , status_2431. scratchpad );
69 }
70
71 void readMemory_2431 ( uint8_t romNum, uint16_t endereço, uint8_t len) {
72 uint8_t debug;
73 int i;
74 reset ();
75 writeByte (MATCHROM);
76 writeROM (status_2431. romTable [romNum]);
77 writeByte (DS2431_READMEM);
78 for (i = 0 ; i < 2 ; i ++) { // escreva o byte menos significativo e o mais significativo d
79 debug = (endereço >> ( 8 * i)) & 0xFF ;
80 writeByte ((endereço >> ( 8 * i)) & 0xFF );
81 }
82 up ();

83 storeData (len, & status_2431. memory [romNum] [endereço]);


84 para baixo ();

https://github.com/bencon/1-wire/blob/master/DS2431.c 2/3
30/07/2021 1 fio / DS2431.c no mestre · bencon / 1 fio · GitHub
85 }
86
87 // Use esta função para definir proteções nas páginas 0-3 da memória
88 // 55h para proteção contra gravação, AAh para leitura, 00h para nenhuma proteção
89 vazio setProtection_2431 ( uint8_t romNum, uint8_t page0, uint8_t Página1, uint8_t page2, uint
90 dados uint8_t [ 8 ];
91 dados [ 0 ] = página 0 ;
92 dados [ 1 ] = página1;
93 dados [ 2 ] = página2;
94 dados [ 3 ] = página3;
95 dados [ 4 ] = 0x00 ;
96 dados [ 5 ] = 0x00 ;
97 dados [ 6 ] = 0x00 ;
98 dados [ 7 ] = 0x00 ;
99 copyScratch_2431 (dados, 0x0080 , romNum, 1 );
100 }
101

https://github.com/bencon/1-wire/blob/master/DS2431.c 3/3

Você também pode gostar