C++

Sep 27, 2003 2 Replies

Hi All,



åÓÔØ ËÌÁ×ÉÁÔÕÒÁ, ËÏÔÏÒÁÑ ÓÏÓÔÏÉÔ ÉÚ ËÏÎÔÒÏÌÌÅÒÁ ËÌÁ×ÉÁÔÕÒÙ, ËÏÔÏÒÙÊ ÏÐÒÁÛÉ×ÁÅÔÓÑ ÐÏ ÔÁÊÍÅÒÕ, ËÏÔÏÒÙÊ ÏÔÒÁÂÁÔÙ×ÁÅÔ Á×ÔÏÒÅÐÉÔ É ÐÒÏÞÉÅ ÐÁÒÁÍÅÔÒÙ, ËÏÔÏÒÙÅ ÕÓÔÁÎÁ×ÌÉ×ÁÀÔÓÑ × ÓÅÔÁÐÅ, ËÏÔÏÒÙÊ ÌÅÖÉÔ × EEPROM. ôÁÊÍÅÒ, EEPROM É ÐÒ. ÉÍÅÀÔ ÍÎÏÇÏ ÄÒÕÇÉÈ ÐÒÉÍÅÎÅÎÉÊ É ×ÚÁÉÍÏÓ×ÑÚÅÊ. ôÏ ÅÓÔØ ÍÎÏÇÏ ÒÁÚÌÉÞÎÙÈ ËÌÁÓÓÏ× ÕÓÔÒÏÊÓÔ×, ÆÕÎËÃÉÏÎÁÌØÎÏ Ó×ÑÚÁÎÎÙÈ ÍÅÖÄÕ ÓÏÂÏÊ. ëÁË ÎÁÉÂÏÌÅÅ ËÒÁÓÉ×Ï ÏÔÒÁÚÉÔØ ÜÔÏ × ÓÔÒÕËÔÕÒÅ ÐÒÏÇÒÁÍÍÙ?

VLV


Hello Vladimir.

27 Sep 03 17:43, Vladimir Vassilevsky wrote to all:

VV> åÓÔØ ËÌÁ×ÉÁÔÕÒÁ, ËÏÔÏÒÁÑ ÓÏÓÔÏÉÔ ÉÚ ËÏÎÔÒÏÌÌÅÒÁ ËÌÁ×ÉÁÔÕÒÙ, ËÏÔÏÒÙÊ VV> ÏÐÒÁÛÉ×ÁÅÔÓÑ ÐÏ ÔÁÊÍÅÒÕ, ËÏÔÏÒÙÊ ÏÔÒÁÂÁÔÙ×ÁÅÔ Á×ÔÏÒÅÐÉÔ É ÐÒÏÞÉÅ VV> ÐÁÒÁÍÅÔÒÙ, ËÏÔÏÒÙÅ ÕÓÔÁÎÁ×ÌÉ×ÁÀÔÓÑ × ÓÅÔÁÐÅ, ËÏÔÏÒÙÊ ÌÅÖÉÔ × EEPROM. VV> ôÁÊÍÅÒ, EEPROM É ÐÒ. ÉÍÅÀÔ ÍÎÏÇÏ ÄÒÕÇÉÈ ÐÒÉÍÅÎÅÎÉÊ É ×ÚÁÉÍÏÓ×ÑÚÅÊ. VV> ôÏ ÅÓÔØ ÍÎÏÇÏ ÒÁÚÌÉÞÎÙÈ ËÌÁÓÓÏ× ÕÓÔÒÏÊÓÔ×, ÆÕÎËÃÉÏÎÁÌØÎÏ Ó×ÑÚÁÎÎÙÈ VV> ÍÅÖÄÕ ÓÏÂÏÊ. ëÁË ÎÁÉÂÏÌÅÅ ËÒÁÓÉ×Ï ÏÔÒÁÚÉÔØ ÜÔÏ × ÓÔÒÕËÔÕÒÅ ÐÒÏÇÒÁÍÍÙ?

HÁÄÓÔÒÏÔØ CAL (common abstraction level) ÎÁÄ HAL ? :) ÍÏÖÎÏ, ÎÁÐÒÉÍÅÒ, ÒÅÁÌÉÚÏ×ÁÔØ ÓÉÓÔÅÍÕ callbacks ÏÔ ÔÁÊÍÅÒÏ× É ÐÒÏÞÉÈ ÄÅ×ÁÊÓÏ×, ÇÅÎÅÒÑÝÉÈ ÓÏÂÙÔÉÑ.. åÓÌÉ ÈÏÞÅÔÓÑ ÓÏ×ÓÅÍ ÈÏÒÏÛÏ, ÔÏ ÒÅÁÌÉÚÏ×ÁÔØ ÓÉÓÔÅÍÕ ÏÂÍÅÎÁ ÓÏÏÂÝÅÎÉÑÍÉ × CAL, ×-ÏÂÝÅÍ, ÎÁ×ÏÒÁÞÉ×ÁÔØ ÍÏÖÎÏ ÄÏ ÂÅÓËÏÎÅÞÎÏÓÔÉ :) HÁÓÞÅÔ ã++ -ÎÙÈ ÐÁÔÔÅÒÎÏ× generic callbacks, state machines, singletons É ÐÒÏÞÉÈ ×ÅÝÅÊ ×ÙÐÕÝÅÎÏ ÄÏ×ÏÌØÎÏ ÍÎÏÇÏ ÌÉÔÅÒÁÔÕÒÙ, ËÏÅ-ÞÔÏ ÍÏÖÎÏ ÐÏÓÍÏÔÒÅÔØ ÎÁ ÓÁÊÔÅ ÔÏ ÌÉ Õ Herb Sutter ÔÏ ÌÉ Õ ÄÒÕÇÉÈ ÓÔÏÌÐÏ× generic programming. URL ÔÏÞÎÏ ÎÅ ÐÏÍÎÀ, ÎÏ ÍÏÖÎÏ ÐÏÉÓËÁÔØ ÐÏ ÓÌÏ×ÁÍ "Guru of the week, GOTW"

Dmitry

27-Sep-03 16:43 Vladimir Vassilevsky wrote to All:

VV> Есть клавиатура, которая состоит из контроллера клавиатуры, который VV> опрашивается по таймеру, который отрабатывает авторепит и прочие VV> параметры, которые устанавливаются в сетапе, который лежит в EEPROM. А почему это таймер отрабатывает авторепит? Или это я запутался в цепочке слов "который" :-) ? Это я в asm или C-программе могу всё затолкать в один обработчик прерываний таймера и "по месту" в нём вписать клавиатуру, динамическую индикацию, etc. Ещё и для экономии тактов частично размазав обработку таймеров и таймаутов между обращениями к spi (в нескольких местах динамическая индикация на 75hc595 сидит на spi).

А тут уж "не таймерово дело" про автоповтор знать.

IMHO авторепит должна отрабатывать клавиатруа и "клавиатара вообще" должна иметь методы отсетапливания этого дела. И должно быть нечто "ТаймеромДёргальное" с виртуальной функцией "Дёрг". Тогда наследовать клавиатуру, опрашиваемую по таймеру, от КлавыВообще и ТаймеромДёргального и зарегистрировать эту новую клавиатуру как (ТаймеромДёргальное*) у таймера в список дёргаемого с нужной частотой. В смысле у таймера может быть несколько списков - для 1,10,100 мс периода. Клавиатуру дёргать с интервалом

10мс и пусть она сама разбирается и с антидребезгом и с автоповтором.

wbr,

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required