pulseIn в attiny13 синтаксис
- Войдите на сайт для отправки комментариев
Ср, 03/07/2019 - 10:37
Всем доброго дня.
Сильно не пинаться, плиз.
Задача: В зависимости от длительности импульса нужно включать светодиод.
Что я делаю не так?
[code]
int pin = 1;
unsigned long duration;
volatile bool comp = 0;
//const wait = 180;
void setup() {
pinMode(pin, INPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
}
void loop() {
duration = pulseIn(1, HIGH);
if ()
{
digitalWrite(4, HIGH);
}
else{
digitalWrite(4, LOW);
}
}
[/code]
условие пропустил, но ругается на функцию pulseIn
так а что здесь не так?
просил вежливо, не ругаться, а тем более не шиздеть
давно перевел. Ты бы сказал чего там не хватае
условие пропустил, но ругается на функцию pulseIn
у меня не ругается, если условие исправить
в синтаксисе так же как и у меня
вот чужой скетч. Такой же синтаксис
holl - единственная идея, что pulseIn() для тиньки13 имеет другой синтаксис. У меня сейчас на компе не стоит пакет для тиньки, проверить не могу. Попробуй скомпилировать этот код для платы Уно - получится?
прототип функции pulseIn для Тиньки
'long unsigned int pulseIn(unsigned char, unsigned char, long unsigned int)
может, так как пишет, что нужно четыре параметра, у меня тут только для 2313 можно проверить, но с ней всё ок
у меня ругается когда стоит плата attyni13, а когда uno или что нибудь другое, то не ругается.
Но мне нужно именно для тиньки
пишет, что нужно четыре параметра
три.
спасибо, 3 параметра хватило. Я пробовал 3 параметра ставить, но первые разы не то ставил. Еще раз спасибо
пишет, что нужно четыре параметра
три.
сам вижу, что три, а в голове вертится четыре, + 27 с утра однако, а извращенцы, это кто изменил функцию
почему то посты исчезают
функцию не меняли, изначально их и было две, одна принимала два параметра, вторая - три. В Тиньке первую убрали, оставили только вторую (пошто так - нинаю).
У мня тоже +27 внаулице и 38.6 унутре. :( Их бин бальной.
почему то посты исчезают
неинформативные посты я удаляю.
неинформативные посты я удаляю.
один зря удалил - где ТС написал, что за третий параметр (таймаут)
да. прошу прощения.
да. прошу прощения.
а 38 то чего, вирусы одолели?
в выходные 15 было, видимо простыл, када под смородиной ночью валялся.
а срачик про светофор тоже ты, Дед, зарубил??? Я проснулся, хотел оттянуться, а срача уже нет.
Да, я. Ну я чесно его вчера предупредил, что удалю. Если нужно, надо пропросить bwn, он восстановит. Только, зачем? Чую там хитрожопую задницу и не очень порядочные отношения с предыдущим исполнителем. IMHO.
как совладать с возвращаемым значение pulseIn, допустим оно равно 16000, они же реальные 16000мкс и зависят ли они от установки тактовой частоты?
как совладать с возвращаемым значение pulseIn, допустим оно равно 16000, они же реальные 16000мкс и зависят ли они от установки тактовой частоты?
от частоты зависит точность. Для 9600 - +/- 27мкс, для 4800 - 53
как совладать с возвращаемым значение pulseIn, допустим оно равно 16000, они же реальные 16000мкс и зависят ли они от установки тактовой частоты?
от частоты зависит точность. Для 9600 - +/- 27мкс, для 4800 - 53
подскажи пожалуйста от куда эта инфа? время такта 1/f, а вот от куда +/-?
А тебе трудно самому исходник посмотреть?
вот код микрос:
unsigned long micros(){ unsigned long x; asm("cli"); #if F_CPU < 150000 && F_CPU > 80000 x = ovrf * 2000; #elif F_CPU == 600000 x = ovrf * 427; #elif F_CPU == 1000000 x = ovrf * 256; #elif F_CPU == 1200000 x = ovrf * 213; #elif F_CPU == 4000000 x = ovrf * 64; #elif F_CPU == 4800000 x = ovrf * 53; #elif F_CPU == 8000000 x = ovrf * 32; #elif F_CPU == 9600000 x = ovrf * 27; #elif F_CPU == 10000000 x = ovrf * 26; #elif F_CPU == 12000000 x = ovrf * 21; #elif F_CPU == 16000000 x = ovrf * 16; #else #error This CPU frequency is not defined #endif asm("sei"); return x; }а вот pulseIn
//Untested code lurks ahead! If it does or does not work, please notify me! unsigned long pulseIn(unsigned char pin, unsigned char stat, unsigned long timeout = 0xFFFFFFFF){ unsigned long st,to; to = micros(); while(digitalRead(pin) == stat){if((micros() - to) > timeout){return 0;}} while(digitalRead(pin) != stat){if((micros() - to) > timeout){return 0;}} st = micros(); while(digitalRead(pin) == stat){if((micros() - to) > timeout){return 0;}} return micros()-st; }подскажи пожалуйста от куда эта инфа?
И еще, важно для новичка:
Вопрос задаешь ты и ответ нужен тебе. Тут не место для споров. Это не политическая площадка.
Еще раз проявишь сомнения - отправишься в задницу - ждать другого "советчика".
А тебе трудно самому исходник посмотреть?
Посмотреть-то нетрудно :)
А тебе трудно самому исходник посмотреть?
Посмотреть-то нетрудно :)
Действительно! Что это я?! Даже неловко... ;)))
---------
Надо признать, что есть еще микрокор ядро. Там pulseIn аккуратнее написан и точность 16 тактов CPU.
Действительно! Что это я?!
Бывает :)
Сегодня andriano сделал мой день. Как вспомню #33, так не могу не улыбаться.
с чего ты взял что это сомнения? Зачем сразу так реагировать?
Я много чего не знаю, поэтому и спрашиваю. Про исходник я вообще не знаю
А задницу лучше прибереги)) Без обид!!!