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

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

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

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

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

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


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

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

ew3ds, будете этот код таскать по разным компиляторам и разным чипам или просто остановитесь на достигнутом?
Если первое - правильней избежать неявных преобразований, если второе - без разницы…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Непрочитано 13.12.2022, 01:03  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,951
Сказал спасибо: 2,547
Сказали Спасибо 11,840 раз(а) в 5,933 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Тахометр, нужна помощь.

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

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

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

Сообщение от mike-y-k Посмотреть сообщение
или просто остановитесь на достигнутом?
Именно так. Это будет один, максимум два экземпляра для себя.
ew3ds вне форума  
Непрочитано 13.12.2022, 01:59  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,248
Сказал спасибо: 11,167
Сказали Спасибо 3,855 раз(а) в 2,926 сообщении(ях)
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  
j-Roger
Гражданин KAZUS.RU
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 707
Сказал спасибо: 363
Сказали Спасибо 795 раз(а) в 370 сообщении(ях)
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  
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  
Signalshik2
Вид на жительство
 
Аватар для Signalshik2
 
Регистрация: 11.08.2015
Сообщений: 408
Сказал спасибо: 17
Сказали Спасибо 37 раз(а) в 28 сообщении(ях)
Signalshik2 на пути к лучшему
По умолчанию Re: Тахометр, нужна помощь.

Код:
volatile bit start;
Signalshik2 вне форума  
Сказали "Спасибо" Signalshik2
ew3ds (13.12.2022)
Непрочитано 13.12.2022, 15:40  
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  
Signalshik2
Вид на жительство
 
Аватар для Signalshik2
 
Регистрация: 11.08.2015
Сообщений: 408
Сказал спасибо: 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, время: 06:23.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot