Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


Ответ
Опции темы

Тахометр, нужна помощь.

Непрочитано 13.12.2022, 00:22   #11
ew3ds
Временная регистрация
 
Регистрация: 03.03.2005
Сообщений: 52
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ew3ds на пути к лучшему
По умолчанию Re: Тахометр, нужна помощь.

akegor, Оставить как было? Как правильно?
Реклама:
ew3ds вне форума   Ответить с цитированием
Непрочитано 13.12.2022, 00:47   #12
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО/МО
Сообщений: 12,287
Сказал спасибо: 11,861
Сказали Спасибо 4,159 раз(а) в 3,177 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Тахометр, нужна помощь.

ew3ds, будете этот код таскать по разным компиляторам и разным чипам или просто остановитесь на достигнутом?
Если первое - правильней избежать неявных преобразований, если второе - без разницы…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума   Ответить с цитированием
Непрочитано 13.12.2022, 01:03   #13
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Тахометр, нужна помощь.

Сообщение от ew3ds Посмотреть сообщение
Как правильно?
Правильно - не полагаться на "кефаль, которая думает за вас". Если загрузка должна производиться побайтно, значит так и делать.
Сообщение от mike-y-k Посмотреть сообщение
будете этот код таскать по разным компиляторам и разным чипам или просто остановитесь...
Лучше сразу привыкать к непритягиванию ошибок, которые, бывает, не так-то и просто найти.

Говорят, правильный прогрАммер, ложась спать, ставит рядом стакан с водой, на случай, если ночью захочет пить. И пустой - если не захочет.
Другими словами - под контролем должно быть всё!
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.

Последний раз редактировалось akegor; 13.12.2022 в 01:07.
akegor вне форума   Ответить с цитированием
Непрочитано 13.12.2022, 01:24   #14
ew3ds
Временная регистрация
 
Регистрация: 03.03.2005
Сообщений: 52
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ew3ds на пути к лучшему
По умолчанию Re: Тахометр, нужна помощь.

Сообщение от mike-y-k Посмотреть сообщение
или просто остановитесь на достигнутом?
Именно так. Это будет один, максимум два экземпляра для себя.
ew3ds вне форума   Ответить с цитированием
Непрочитано 13.12.2022, 01:59   #15
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО/МО
Сообщений: 12,287
Сказал спасибо: 11,861
Сказали Спасибо 4,159 раз(а) в 3,177 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Тахометр, нужна помощь.

akegor, таки тогда нужно писать такие операции с учетом разрядности используемого железа… это уже к вопросу о правильных программистах…

ew3ds, тогда оставьте в коде комментарий о неявном присвоении, если будут проблемы - проверите. Или просто напишите операцию без #define прямым присвоением (те 2 операции присвоения из #define). Для 8-битного МК это будет максимально правильно…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…

Последний раз редактировалось mike-y-k; 13.12.2022 в 02:06.
mike-y-k вне форума   Ответить с цитированием
Непрочитано 13.12.2022, 04:12   #16
j-Roger
Гражданин KAZUS.RUN
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 839
Сказал спасибо: 379
Сказали Спасибо 942 раз(а) в 451 сообщении(ях)
j-Roger на пути к лучшему
По умолчанию Re: Тахометр, нужна помощь.

Пару слов насчет правильности: переменную, которая используется и в прерывании и вне его (в данном проекте это переменная start в файле main.c), правильно объявлять с квалификатором volatile во избежание сюрпризов.
В частности, в данном проекте компилятор gcc при включенной оптимизации по размеру сгенерировал инструкцию бесконечного цикла, если у переменной start отсутствовал квалификатор volatile.

Во-о-он на картинке разница с 'volatile' и без оного:
Нажмите на изображение для увеличения
Название: volatile.jpg
Просмотров: 0
Размер:	46.2 Кб
ID:	174004

Одним словом, это зависит. Компилятору доверяем, но проверяем.
j-Roger вне форума   Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо j-Roger за это сообщение:
ew3ds (13.12.2022), mike-y-k (13.12.2022)
Непрочитано 13.12.2022, 13:39   #17
ew3ds
Временная регистрация
 
Регистрация: 03.03.2005
Сообщений: 52
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ew3ds на пути к лучшему
По умолчанию Re: Тахометр, нужна помощь.

Сообщение от j-Roger Посмотреть сообщение
правильно объявлять с квалификатором volatile во избежание сюрпризов.
Цитата:
...
#define NO_PULSES_INTERVAL 50000

bit
start;

volatile bit;

long
data;
...
Цитата:
...
interrupt [EXT_INT0] void ext_int0_isr(void)
{
static bit
process;

volatile ;

static unsigned char
...
Подскажите, так будет правильно?

Последний раз редактировалось ew3ds; 13.12.2022 в 13:49.
ew3ds вне форума   Ответить с цитированием
Непрочитано 13.12.2022, 14:21   #18
Signalshik2
Вид на жительство
 
Аватар для Signalshik2
 
Регистрация: 11.08.2015
Сообщений: 409
Сказал спасибо: 17
Сказали Спасибо 37 раз(а) в 28 сообщении(ях)
Signalshik2 на пути к лучшему
По умолчанию Re: Тахометр, нужна помощь.

Код:
volatile bit start;
Signalshik2 вне форума   Ответить с цитированием
Сказали "Спасибо" Signalshik2
ew3ds (13.12.2022)
Непрочитано 13.12.2022, 15:40   #19
ew3ds
Временная регистрация
 
Регистрация: 03.03.2005
Сообщений: 52
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ew3ds на пути к лучшему
По умолчанию Re: Тахометр, нужна помощь.

Signalshik2, вот так не ругается
Код:
...
#define NO_PULSES_INTERVAL    50000

//bit
//start;

//volatile bit;
 volatile bit start;

long 
data;
...
Код:
...
interrupt [EXT_INT0] void ext_int0_isr(void)
{
 static bit 
 process; 

 volatile; 
 //volatile bit start;
 
 static unsigned char 
 cnt;
...
ew3ds вне форума   Ответить с цитированием
Непрочитано 13.12.2022, 16:15   #20
Signalshik2
Вид на жительство
 
Аватар для Signalshik2
 
Регистрация: 11.08.2015
Сообщений: 409
Сказал спасибо: 17
Сказали Спасибо 37 раз(а) в 28 сообщении(ях)
Signalshik2 на пути к лучшему
По умолчанию Re: Тахометр, нужна помощь.

Тип и название переменной нужно в одну строку писать. Просто volatile; и точка с запятой - это нужно удалить, это бред.
Signalshik2 вне форума   Ответить с цитированием
Сказали "Спасибо" Signalshik2
ew3ds (13.12.2022)
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Люди, у кого есть АС MICROLAB H 600 или H 500,пожалуйста отзовитесь, нужна помощь Lesha2222 Аудиотехника 1 30.01.2014 21:44
Hantek 3064A ремонт (нужна помощь) Kulibin1234 Измерительное оборудование 0 21.10.2013 14:16
Нужна помощь в ремонте инвертора 373niko Источники питания и свет 10 06.09.2009 21:13
Нужна помощь!!! ШД -> UNL2003A -> PIC16F84A xxxmonejall Микроконтроллеры, АЦП, память и т.д 10 04.08.2009 00:02
Нужна помощь профессионала! romstal Аудиотехника 7 23.02.2009 15:19


Часовой пояс GMT +4, время: 18:31.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.