i2c multitarefa + interrupçao

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Mensagempor Djalma Toledo Rodrigues » 31 Out 2009 22:04

A impressão do Ticket só deve ser feita após todo o processamento

Já fez isso ?

Eu estou supondo que todos os Registros tenham o mesmo número de Bytes. Certo ?

Se quizer maior confiabilidade dos Dados gravados na EEprom faça Checksum

Some todos os Bytes de cada Registro (não importa o estouro do Acumulador) e acresente um Byte a mais de modo que o
Checksum seja igual a Zero
Isto vai garantir a integridade de cada registro.

Ao imprimir Relatório, Checksum = Zero ? Ok
.
Editado pela última vez por Djalma Toledo Rodrigues em 31 Out 2009 22:19, em um total de 1 vez.
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor cristian » 31 Out 2009 22:08

quero fazer isso mesmo

me explica melhor o lance do cheksum

faço com os dados antes de salvar?

leio e faço cheksum???
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor Djalma Toledo Rodrigues » 31 Out 2009 22:49

Soma todos os Bytes de cada Registro (Ticket)

Desconsidera o Overflow da Soma

Adiciona um Byte a mais em cada Registro

O objetivo deste Byte é fazer com que o Somatório de todos os Bytes do Registro,
inclusive este, seja igual a Zero.

Exemplo:

E1 + D2 + C5 + 69 + AD + A2 + 98 + 8E + 54 + 32 = DC

00 - DC = 24 ----> Este deverá ser o Conteúdo do Byte Adicionado .

Então Salva na EEPROM:
E1 D2 C5 69 AD A2 98 8E 54 32 24

Quando da verificação de integridade, fica assim o Checksum deste Registro:
E1 + D2 + C5 + 69 + AD + A2 + 98 + 8E + 54 + 32 + 24 = 00

Assim para os demais.
.
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor cristian » 01 Nov 2009 08:45

so mais uma coisa tenho valres que tem 16 e 32 bits

na hora de salvar separo os dados

entao faço o checksum depois de separado correto ???

e antes de juntar
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor Djalma Toledo Rodrigues » 02 Nov 2009 09:43

cristian escreveu:so mais uma coisa tenho valres que tem 16 e 32 bits

A Memória não é de 8 Bits ?

Então você esta armazenando Bytes.

Agora cuidado com isso, os Registros, e os Campos, devem obrigatóriamente
ter o mesmo número de Bytes.

Veja princípios dos Bancos de Dados.
Registro e Campos

Existem outros procedimentos para garantir a Integridade de Dados e até sua correção
mas, não é coisa para um simples uC

----------------------------------

PS : Obviamente Verificar a Integridade dos Dados antes de Imprimir cada Registro no Relatório.
.
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Anterior

Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x