P
Pete
Guest
Поздравления за всички:
Аз съм експериментират по измерване на единичен импулс и измерената стойност показва в двоичен, както показва в portd използват 8 светодиоди.Разбира се, аз бях таймер е 16BIT, но аз не знам още как да го покажете в 16 светодиода използва 2 порта.Също така, на импулса вход аз е цяло число или стойност цяло число от 1usec да 50usec.
Какво става код ми по-долу?Аз очаквам, че ако въведе 1usec пулс, светодиода ще прочетете 00000001, в продължение на 2 usec 00000010, в продължение на 3 usec 00000011, за 4usec
00000100 и др ..Той не се показва по този начин и съм объркан как да го коригира, или ми код не е наред.Нуждаете се от вашата помощ / коментари.Благодаря .../ / Няма прекъсване метод
дълго pulse_width;
Основните ()
(
trisb0 = 1; / / да portb0 входяща
trisd = 0x00; / / да portd изход
portd = 0;
докато (1)
(
setup_timer_1 (T1_DISABLED);
set_timer1 (0); / / до преливане в 51us
докато (! вход (PIN_B0));
setup_timer_1 (T1_INTERNAL);
докато (вход (PIN_B0));
setup_timer_1 (T1_DISABLED);
pulse_width = get_timer1 ();
PORTD = pulse_width;
)
)
Аз съм експериментират по измерване на единичен импулс и измерената стойност показва в двоичен, както показва в portd използват 8 светодиоди.Разбира се, аз бях таймер е 16BIT, но аз не знам още как да го покажете в 16 светодиода използва 2 порта.Също така, на импулса вход аз е цяло число или стойност цяло число от 1usec да 50usec.
Какво става код ми по-долу?Аз очаквам, че ако въведе 1usec пулс, светодиода ще прочетете 00000001, в продължение на 2 usec 00000010, в продължение на 3 usec 00000011, за 4usec
00000100 и др ..Той не се показва по този начин и съм объркан как да го коригира, или ми код не е наред.Нуждаете се от вашата помощ / коментари.Благодаря .../ / Няма прекъсване метод
дълго pulse_width;
Основните ()
(
trisb0 = 1; / / да portb0 входяща
trisd = 0x00; / / да portd изход
portd = 0;
докато (1)
(
setup_timer_1 (T1_DISABLED);
set_timer1 (0); / / до преливане в 51us
докато (! вход (PIN_B0));
setup_timer_1 (T1_INTERNAL);
докато (вход (PIN_B0));
setup_timer_1 (T1_DISABLED);
pulse_width = get_timer1 ();
PORTD = pulse_width;
)
)