this code is wrong: procedure EEprom_Read_Int(addrstart:byte;Data:integer); var Mem:array [0..6] of Char; i:byte; begin for i:=0 to 6 do mem[i]:=EEprom_read(addrstart+i); Data:=StrToInt(Mem); end; procedure EEprom_write_Int(addrstart:byte;Data:integer); var Mem:array [0..6] of Char; b,i:byte; begin ...
Ještě mě napadlo tohle: V případě že by ti stačilo měřit dobu trvání pulsu ,tak by se to dalo řešit hardwarově.Timer se dá nakonfigurovat tak že se náběžnou spustí a sestupnou hranou zastaví a přečte se načítaná hodnota.
Názvy v Mikropascalu a datasheetu jsou často stejný,někdy hodně podobný.Hlavně je potřeba správně nastavit hardware procesoru.Všeobecne platí: "co není zakázaný,je povolený" Pokud člověk s daným hardwarem nepracuje,neznamená že ho nemusí obsluhovat.
Já bych to zkusil takhle: Čekal bych na určitým pinu na úroveň 'H'.V ten moment bych spustil timer a pokud by nastala úroveň 'L' čekal bych na další úroveň 'H' a zastavil timer.Přečetl hodnotu timeru a vynuloval ho.Hodnotu zobrazil na display.Pokud by byla úroveň 'L' na tom pinu,čekal bych na náběžn...