
Re: Ултразвуков измервател на разстояние
Благодаря за препоръката, ако излезнат чудни проблеми ще направя тази промяна,
но аз преди няколко седмици открих решението и беше доста интересно за мен:
програмирах чипа за активен порт PGED/PGEC1, но както често ми се случва,
реално бях свързан за PGED/PGEC3 (двойките са съседни

). Тази заблуда се поддържаше
от факта, че
програмирането се осъществяваше нормално (излизаха от време на време грешки,
но мислех, че не съм вързал добре нещо - кварц или друго..). Наистина, не съм допускал,
че контролера ще ме пусне от там въпреки конфиг битовете си.
В крайна сметка си видях грешката, преместих се на PGED/PGEC3 и всичко си дойде на
мястото - девелОпвам с пълна сила
И... да споделя още едно впечатление: писах сам драйвера за дисплея
(Nokia 5510 Shield с контролер Phillips PCD8544 - на който би му бил от полза да каже),
разбира се, с хвърляне на поглед в други решения, като Ардуино.
Известно време се чудех защо въпреки, че текста се изписва
правилно на първия ред, командата за задаване на координатна точка от полето се
възприемаше неправилно т.е. не като команда, а като data за изобразяване!
Проблемът не беше в D\~C пина.. клатех го както трябва, но днес мисля, че другата ми теория
се потвърди: по принцип PCD8544 семплира D\C пина по време на последния бит, който
получава по MODI. А функциите ми (SendCmdByte / SendDataByte)
започват с установяване на D\C-то и зареждане на SPI. Обаче бита на SPI_TxBuf се вдига в
"буфера е свободен", когато няколко бита от байта може все още да са в Shift регистъра т.е. преди байта да
е изпратен аз вече съм стигнал в следващата фунцкия !!!(1.SendCmdByte -> 2.SendDataByte).
и дисплея още не е семплирал D\C !!! В крайна сметка получаваше байт, за който четеше дали е
дата или контрол от следвaщия байт. Сложих микросекундни дилейчета,
увеличих SPI честотата и всичко вече е точно (не знам друг начин за установяване на изпратен байт).
Всеки ден се открива нещо ново

Поздрави !
