11.12.2022, 17:29
|
|
Временная регистрация
Регистрация: 03.03.2005
Сообщений: 52
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Тахометр, нужна помощь.
Просьба, если можете, подправьте пожалуйста код для работы контроллера (ATtiny2313) с индикатором общим катодом. Инструмент для компилирования и протеус для симуляции имеется, а вот грамоты в программировании нет.
|
|
|
|
12.12.2022, 03:21
|
|
Гражданин KAZUS.RU
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 709
Сказал спасибо: 363
Сказали Спасибо 795 раз(а) в 370 сообщении(ях)
|
Re: Тахометр, нужна помощь.
ew3ds, попробуйте заменить в проекте файл 7seg.c на тот, что в архиве во вложении: 7seg.zip
P.S. Предварительно сохраните где-нибудь оригинальный файл 7seg.c
P.P.S.
Чтобы на табло с общим катодом появлялись "прочерки", когда это предусмотрено в программе, нужно в файле main.c в обработчике прерывания ext_int0_isr() заменить фрагмент кода :
Код:
|
...
if(TIFR&0x80)
{
start=0;
SBI(TIFR,TOV1);
process=0;
NUM_PORT=ALL_NUM;
CHR_PORT=~(0x01);
}
... |
на вот такой:
Код:
|
if(TIFR&0x80)
{
start=0;
SBI(TIFR,TOV1);
process=0;
CHR_PORT=0x01;
CBI(NUM_PORT,NUM_1);
CBI(NUM_PORT,NUM_2);
CBI(NUM_PORT,NUM_3);
CBI(NUM_PORT,NUM_4);
} |
Успехов!
Последний раз редактировалось j-Roger; 12.12.2022 в 21:41.
Причина: Добавлены изменения в файле main.c
|
|
|
Сказали "Спасибо" j-Roger
|
|
|
12.12.2022, 14:15
|
|
Вид на жительство
Регистрация: 11.08.2015
Сообщений: 408
Сказал спасибо: 17
Сказали Спасибо 37 раз(а) в 28 сообщении(ях)
|
А в CodeVisionAVR используется WinAVR или там свой компилятор(Сишный)? И в чем вообще вопрос?
"#define TIMER (TCNT1L+(TCNT1H‹‹8))" - я всегда думал, что компилятор сам это делает.
Последний раз редактировалось mike-y-k; 12.12.2022 в 18:30.
Причина: 6.6
|
|
|
|
12.12.2022, 15:06
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,033
Сказал спасибо: 2,559
Сказали Спасибо 11,881 раз(а) в 5,958 сообщении(ях)
|
Re: Тахометр, нужна помощь.
Сообщение от Signalshik2
|
в CodeVisionAVR используется WinAVR или там свой компилятор(Сишный)?
|
Свой. С нюансами.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
12.12.2022, 16:38
|
|
Вид на жительство
Регистрация: 11.08.2015
Сообщений: 408
Сказал спасибо: 17
Сказали Спасибо 37 раз(а) в 28 сообщении(ях)
|
Re: Тахометр, нужна помощь.
Код:
|
#define CLR_TIMER_RPM TCNT1H=0;TCNT1L=0 |
- опять таже ошибка, к 16-битному регистру можно обратиться за раз:
|
|
|
|
12.12.2022, 17:23
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,956
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
|
Re: Тахометр, нужна помощь.
Сообщение от Signalshik2
|
к 16-битному регистру можно обратиться за раз
|
Это не ошибка, это ухудшение читабельности. А компилятор как раз сделает так, как было указано - сперва старший байт, потом младший.
__________________
[ жизнь приятна и красива, если выпить литр пива ]
|
|
|
|
12.12.2022, 22:07
|
|
Временная регистрация
Регистрация: 03.03.2005
Сообщений: 52
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Тахометр, нужна помощь.
j-Roger, Благодарю за помощь, индикатор с общим катодом заработал. Кстати, я путем логического анализа, пробовал менять местами SBI и CBI, но убрать закорючку "~" я бы никогда не догадался . С main.c я позже поработаю.
Последний раз редактировалось ew3ds; 12.12.2022 в 22:11.
|
|
|
|
12.12.2022, 22:22
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,033
Сказал спасибо: 2,559
Сказали Спасибо 11,881 раз(а) в 5,958 сообщении(ях)
|
Re: Тахометр, нужна помощь.
Сообщение от nml
|
Это не ошибка, это ухудшение читабельности.
|
Это универсальность и предсказуемость поведения. При неявном указании можно попасться на неожиданную подлянку компилятора, чего при явном указании быть не может (по крайней мере, очень маловероятно). По этой причине не пользуюсь фишками, типа, неявных преобразований и прочими подобными - что нормально отработает в одном компиляторе, может подло извратиться в другом. При моем подходе неожиданных ошибок гораздо меньше. Проверено гадами, ой, пардон, "годами".
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
12.12.2022, 23:17
|
|
Временная регистрация
Регистрация: 03.03.2005
Сообщений: 52
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Сообщение от j-Roger
|
Чтобы на табло с общим катодом появлялись "прочерки", когда это предусмотрено в программе, нужно в файле main.c в обработчике прерывания ext_int0_isr() заменить фрагмент кода
|
Попробовал изменить, работают прочерки. При f\=1 прочерки ниже 950 об, при f\=2 ниже 650 об. С прочерками получается более информативно.
Код:
|
#define CLR_TIMER_RPM TCNT1H=0;TCNT1L=0 |
И так и так работает. Оставил TCNT1 = 0;
Последний раз редактировалось mike-y-k; 13.12.2022 в 00:44.
Причина: 6.6, 7.15
|
|
|
|
13.12.2022, 00:12
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,033
Сказал спасибо: 2,559
Сказали Спасибо 11,881 раз(а) в 5,958 сообщении(ях)
|
Re: Тахометр, нужна помощь.
Сообщение от ew3ds
|
И так и так работает
|
Водку через задницу тоже можно заливать. Работает. Вот только правильно ли это?
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:21.
|
|