Jump to content
parovoZZ

Функции - передача переменных через параметры или глобально?

Recommended Posts

Posted (edited)
1 hour ago, Starichok said:

кнопка обрабатывается в другой функции.

в прерывании по переполнению таймера. Соответственно переменная может измениться в процессе выполнения функции, верно?

Edited by cucumber

Share this post


Link to post
Share on other sites
15 minutes ago, cucumber said:

в прерывании по переполнению таймера. Соответственно переменная может измениться в процессе выполнения функции, верно?

Может. Но тогда тем более не ясен цикл многократной проверки этой переменной. Если нужна некая задержка между выводами символов на бегущую строку, то это надо организовывать через таймер. После отправки символа проверяем состояние флага и в сон. Выходим из сна по таймеру. Таким образом, у нас в приоритете вывод символов на экран, а в оставшееся время мы делаем все свои хозяйские дела. Как результат - стабильная скорость вывода символов на экран.

Share this post


Link to post
Share on other sites
Just now, parovoZZ said:

не ясен цикл многократной проверки этой переменной.

чтобы по нажатию любой кнопки можно было прервать выполнение текста

 

Just now, parovoZZ said:

Выходим из сна по таймеру.

получается, в одном таймере я опрашиваю кнопки, и еще нужно задействовать второй? Сейчас у меня один таймер опрашивает, и при нажатии любой кнопки устанавливается флаг, который проверяется в функции, если требуется вывод текста.   

Share this post


Link to post
Share on other sites

Литиевые батарейки Fanso для систем телеметрии и дистанционного контроля

Системы телеметрии находят все более широкое применение во многих отраслях на промышленных и коммунальных объектах. Требования, предъявляемые к условиям эксплуатации приборов телеметрии и, как следствие, источников питания для них, могут быть довольно жесткими. Fanso предоставляет широкую линейку продукции, рассчитанной на различные условия эксплуатации, что позволяет подобрать батарейку для каждого конкретного применения, в том числе и для устройств телеметрии.

Подробнее

Мне показалось, что бегущая строка реализована как-то через анус? Именно бег надо делать по прерываниям, а опрос кнопок и т.п. "управляющие" функции (т.е. остановку бега, например) можно (и, пожалуй, нужно) делать в главном цикле.

Share this post


Link to post
Share on other sites

ну да, видимо так и есть) только бегущая строчка это второстепенная функция, типа паузы - подсказки

Share this post


Link to post
Share on other sites
                     

Приглашаем на вебинар Решения для построения ультразвуковых счетчиков жидкостей и газов на базе MSP430

Компэл совместно с Texas Instruments 23 октября 2019 приглашают на вебинар, посвященный системам-на-кристалле для построения ультразвуковых расходомеров жидкостей и газов на базе ядра MSP430. Вебинар проводит Йоханн Ципперер – эксперт по ультразвуковым технологиям, непосредственно участвовавший в создании данного решения. На вебинаре компания Texas Instruments представит однокристальное решение, позволяющее создавать точные недорогие счетчики жидкостей и газов.

Подробнее...

Just now, cucumber said:

бегущая строчка это второстепенная функция

Вот и я об этом: зачем в ГЛАВНОМ цикле делать ВТОРОСТЕПЕННУЮ функцию?

Share this post


Link to post
Share on other sites

задумка такая - появляется комментарий-строчка, из которой нужно выходить только нажатием кнопки, типа аппендикс. А как можно и нужно?

Share this post


Link to post
Share on other sites
Posted (edited)

Я не знаю, как НУЖНО. А как МОЖНО - тут вариантов море.

Например, в главном цикле вы выводите строку от символа start до символа end. Значение этих переменных меняете в прерывании от таймера, что в итоге даёт бег строки. Все остальное в главном цикле делаете, как угодно - если нажата определенная кнопка, просто останавливаете таймер, или задаете какой-то флаг, по которому обработчик таймерного прерывания не будет менять start и end... В общем, как хотите.

Если включен таймер и крутится главный цикл - строка бежит.

Edited by ARV

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
4 hours ago, Lexter said:

Но придётся терпеть

Причем не только тому, кто задаёт вопросы :)

Share this post


Link to post
Share on other sites
Posted (edited)

если проект с несколькими файлами .c можно как-нибудь вынести массив(ы) в один файл? Чтобы к нему был доступ из других файлов ?

Edited by cucumber

Share this post


Link to post
Share on other sites
Just now, cucumber said:

если проект с несколькими файлами .c можно как-нибудь вынести массив в один файл? Чтобы к нему был доступ из других файлов ?

Разумеется.

Создаете заголовочный файл (например, arr.h), в котором описываете свой массив, например так:

#define ARR_SZ 10
extern int my_arr[ARR_SZ];

Во всех сишных файлах, где требуется доступ к этому массиву, подключаете arr.h. Дополнительно в одном из сишных файлов "наполняете" массив содержимым по умолчанию, если это надо. Т.е. строчка int my_arr[ARR_SZ] = {0,1,2,3,4,5,6,7,8,9}; или int my_arr[ARR_SZ]; должна быть только в одном месте всего проекта.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By parovoZZ
      AREF  - внутренний ИОН 1.1в
      Вот такой код снятия результатов:
      temp = ADC; if (ADCH & (1<<ADCH1)) // Если значение отрицательное { temp |= 0xFC00; temp = (~temp) + 1; } Value_current_lsb = (uint8_t)(temp >> 2); Никак не пойму - на выбранные дифф. входы надо подать 85 мВ, чтобы АЦП выдал 0. Но это могу списать на внутренний ОУ в виде УГ. Если подаю  -1,1 в - то получаю 127.  Здесь все верно. Но при подаче положительного смещения те же 127 получаю уже при 0,72в. Что за ерунда? Неужели ОУ на столько УГ? Либо же где-то теряется разряд?
    • By parovoZZ
      Ну, собственно, сабж. Питание - от 2.4 и до 3.6. На сигнальном выводе необходима половина напряжения питания (по постоянке, разумеется).
    • By parovoZZ
      Я сейчас про случай, когда тактовая частота SPI равна половине или даже равна тактовой процессора. Соответственно, чем занять МК, пока идет отправка данных? У нас есть всего 16 тактов (или меньше). Обычно идет проверка флага опустошения буфера. Но тогда в чем профит аппаратного SPI, если на том же USI данные отправляются за те же 16 тактов, но МК занят тактированием(!)?. Вот чем занять МК? Отправить в остановку? Так дольше будем подготавливаться к остановке, потом уход на вектор прерывания (4 такта как минимум) и возврат из него. Ежели заниматься чем-то параллельно, то так же теряем время на обработку прерывания. Получается - только тупить в троттлинге?
    • By parovoZZ
      Поставил LUFA, следом абсолютно не нужный мне ASF. Но в упор не понимаю - как создать проект на базе этой библиотеки из студии? Приходится вручную копировать папку с заголовочниками LUFA, прописывать пути в makefile, лишние телодвижения по добавлению папки в свойства проекта. Если я это делаю всё вручную, то тогда для чего это расширение? Примеры я могу и так покрутить. ЗЫ - не слишком высокий скилл в юзании Atmel Studio/
  • Сообщения

    • Ну я ж сказал, не сможете, вы просто скопировали текст с какой то чушью.
    • Где же вы раньше были, в начале недели на веге взял недостающее количество на 100р дороже А посылку вашу получил, все ОК
    • Генераторами стабильного тока принято называть устройства, выходной ток которых практически не зависит от сопротивления нагрузки. Он может найти применение, например.в омметрах с линейной шкалой. Величина коллекторного тока транзистора V2 определяется отношением Iк=0,66/R2.Например, при R2, равном 2,2 к0м. ток коллектора транзистора V2 будет равен 0,3 мА и остается практически постоянным при изменении сопротивления резистора Rx от 0 до 30 к0м. При необходимости величина постоянного тока может быть увеличена до 3 мА, для этого сопротивление резистора R2 необходимо уменьшить до 180 Ом. Дальнейшее увеличение тока при сохранении высокой стабильности его величины как при смене нагрузки, так и при увеличении температуры возможно лишь при использовании трехтранзисторного генератора, показанного на рис. 2. При этом транзисторы V2 и V3 должны быть средней мощности, а напряжение второго источника питания - в 2...3 раза больше напряжения питания транзисторов V1, V2. Сопротивление резистора R3 рассчитывается по вышеприведенной формуле, но дополнительно корректируется с учетом разброса характеристик транзисторов.
    • Доброго времени всем. Уважаемый @FonSchtirlitz прослушал в наушниках представленный вами ролик, разрешите высказать свое мнение. По мне "высоких" слишком много, сильно "цыкают", " низкие" частоты, такое слуховое впечатление, воспроизводятся уже не столько динамиками сколько ящиками.  Для корректного сравнения наверное лучше  привести ролики с звучанием одного широкополосного динамика в щите или в открытом ящике, наверняка есть и с двух-трехполосным разделением такие АС,  в которых по идее не должно быть так называемой "интерференционной каши", а ФИ, ЗЯ, ТКВП, ОНКЕН, Рупор и т.д. , конечно не мне дилетанту говорить вам об этом,  совершенно другое АО  и по моему мнению сравнивать их с ГИ некорректно. Интересно каким микрофоном делали запись и какова стоимость данных АС. Почему представленный @Artem Ivn  материал вы считаете бахвальством?  Человек сделал своими руками, снял видео и АЧХ, выложил , что бы люди ознакомились, тем более в соответствующей теме, что в этом нехорошо или не правильно мне не понятно. Я бы с удовольствием посмотрел и послушал, пусть даже через ютуб, ваши наработки и совсем не считал бы  такой материал бахвальством с вашей стороны.  На данный момент времени у меня ГИ ( в аннотации под видео есть небольшой фото отчет об УМЗЧ, кому интересно посмотрите) звучание которых меня устраивает, ""хора мальчиков или воробышков" в них нет, звучание очень гармоничное, к стереоэффекту тоже претензий нет, нижний регистр полностью устраивает.  Да габариты конечно не маленькие но на то оно и АО щит, были самодельные АС лабиринт на Сонидо SWR 250, по габаритам были  тоже "солидные", если правильно помню высота 1400мм, глубина 500мм, ширина 460мм, а по весу под 60кг,  места тоже занимали не мало, правда пришлось продать их из-за жизненных  обстоятельств. Я не адепт  чего то  с утверждением типа: "Только широкополосные дины, только лампы, только без ОС или наоборот только  транзисторы, только многополоска и т.д и т.п." по моему мнению все имеет место быть кроме того, что стреляет и убивает. Слушая по все тому же пресловутому ютуб, много слушая,  причем ролики с хорошим качеством записи, я не могу отделаться от ощущения, что практически все АС  в корпусах гудят или бубнят,  и как я понимаю, из-за корпусов. Возможно это глупое занятие, такие прослушивания и оценки, но другой возможности услышать другие АС у меня нет. Может быть я просто привык к звучанию щитов ГИ в которых установлены  не дорогие советские динамики и данные динамики не такие плохие как утверждают некоторые участники форума,  по крайней мере цена - результат  несоизмеримы, я тоже не ожидал, что от таких недорогих, доступных пока еще, головок можно получить такой отличный результат.   
    • ВАу! Может попробуете объяснить неучу? А впрочем не нужно, всё равно не сможете.
    • Учите мат часть прежде чем писать... И читайте внимательно выше... средняя точка гуляла до этой схемы, по классическому варианту, и прочтите не только меня выше но и других людей... 
    • Частота то какая? Чтоб дроссель не грелся , его надо мотать скруткой(литцендратом). Например я мотаю проводом 0,14мм в 20-40 жил, в зависимости от мощности на выходе. И дроссель почти не греется даже на 1000 ватт(RM14).
  • Покупай!

×
×
  • Create New...