Jump to content
-=FISHER=-

Софтверный таймер и ошибка invalid use of void expression

Recommended Posts

Всем привет!

 

Нашел в интернете пример для создания программного таймера, всё отлично заработало. Функция его создания выглядит так:

enum StateTimer {IDLE, ACTIVE, DONE}; //состояния таймера - неработающий, активный, отработавший

typedef struct{
	unsigned long time;           //через какое время сработает таймер
	unsigned int period;         //период повторения
	enum StateTimer state;    //текущее состояние
	void (*pFunc)(void);         //указатель на функцию
}SoftTimer;

void CreateTimer(SoftTimer *CurSoftTimer, unsigned int time, unsigned int period, enum StateTimer state, void (*pFunc)())
{
	SoftTimers[AmountTimers] = CurSoftTimer;
	CurSoftTimer->time = time;
	CurSoftTimer->period = period;
	CurSoftTimer->state = state;
	CurSoftTimer->pFunc = pFunc;
	AmountTimers++;
}

В качестве функции, которая будет вызываться, когда время таймера истечет я сначала использовал обычную, без аргумента. И создавал таймер вот таким образом:

CreateTimer(&Timer_CH1_Rise, timers_time[0], 0, IDLE, TimerDone); //создание таймера

Всё прекрасно работало, но теперь у меня возникла необходимость вызывать при сработке таймера функцию с аргументом и я делаю это вот таким образом:

CreateTimer(&Timer_CH1_Fall, timers_time[1], 0, IDLE, TimerDone(1)); //создание таймера

Однако Atmel Studio теперь ругается на эту строчку и выдает мне ошибку invalid use of void expression

Я понимаю что прикол кроется в указателях, но не могу разобраться самостоятельно что именно я делаю не так, помогите пожалуйста.

Share this post


Link to post
Share on other sites

Посмотрите вот это, может понравится больше...

 

Share this post


Link to post
Share on other sites
4 часа назад, -=FISHER=- сказал:

выдает мне ошибку invalid use of void expression

Вот же у Вас указывается тип функции :

void (*pFunc)(void);

Тут и меняйте на нужный.
Если хочется с аргументом, то в скобках вместо void пишем тип.

Share this post


Link to post
Share on other sites

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

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

Подробнее

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...

  • Сообщения

    • 22 октября — Международный день защиты мужской нервной системы от насильственных действий со стороны женщины. С праздником, мужчины!!!!
    • Осталось мало, акций не будет!
    • Как то все запутано. Покажите схему с номиналами, что вообще собрано? 10-ой ноге не нужны никакие приблуды, загляните в даташит, она блокирует выходные драйверы прямиком, минуя всё остальное барахло внутри микросхемы.
    • а какие резисторы именно "пытать"? можно выделить на схеме или фото платы? я думаю подпаяться в паралель немного уменьшив сопротивление для теста. оффтоп: может быть дело в том, что ты слушаешь. если колонки, то да, я в основном только наушники. хотя делал платку с max4410 по стандартной обвязки из даташит, как портативный усилитель, но в дороге и движение качество звука тут не особо роли играет, поэтому мини усилитель в целом понравился не класса А
    • Я прочитал про КУ-13. И наверное не увеличивали, а уменьшали? (КУ- Коэффициент Усиления)
    • если вас очень мучает этот разбаланс, выровняйте усиление подбором резисторов в обратной связи, или добавьте регулятор стереобаланса а насчёт класса А ничего не буду говорить, я не сторонник его 20 mA предостаточно для ушника
    • жесть - я похоже сделал ККМ - без ККМ напряжение на диодном мосту ,на входе 220 вольт - оттого и понятно почему на выходе напряжение 60 вольт на одной обмотке вместо 30 - получается - как удвоитель напряжения вышел- ес с общем минусом использовать - и все это время - меня спасала только лампочка - как паленые транзисторы выдержали - непонятно - выходит не подходит эта схема для питания SG3525 - остается вопрос - почему это прокатывает с IR2153 ? получается что в этой мс какая-то замута с питанием - каким -то образом разделили землю .имхо. позже дам раздельное питание - посмотрим, PS- схема ни чем не отличается от той что предложил в последней - сейчас ток заменил на стандартное включение Мс -что на последней фотке.
  • Покупай!

×
×
  • Create New...