Деление периода пополам. Помощь новичку.
- Войдите на сайт для отправки комментариев
Сб, 24/09/2016 - 12:35
Приветствую всех, прошу помощи в поставленной мне задаче, нужно принять сигнал поделить период пополам и выдать его на осцил.
void setup() {
pinMode (8, INPUT);
pinMode (9, OUTPUT);
}
void loop() {
a = pulseIn (8, HIGH);
freq = (1/a)/1000000;
tone (9, freq);
}
подскажите где косяк?
void setup() { pinMode(3,INPUT); pinMode(9,OUTPUT); TCCR0B=0; attachInterrupt(1, popolamer,RISING); } void loop() {} void popolamer() { PORTB^=1<<PB1; //инверсия 9 пина }Примерно до 150кГц.. дальше будет не успевать.
Приветствую всех, прошу помощи в поставленной мне задаче, нужно принять сигнал поделить период пополам и выдать его на осцил.
void setup() { pinMode (8, INPUT); pinMode (9, OUTPUT); } void loop() { a = pulseIn (8, HIGH); freq = (1/a)/1000000; tone (9, freq); }подскажите где косяк?
Первый косяк в публикации Вами скетча. Почему он не полный, вы все, блин, что место на сервере экономите? Вот как у Вас описана переменная a? Секрет, чтол-и? Если как int или long, то Ваша freq всегда будет 0.
они просто объявлены через инт
см. предыдущий пост: "Ваша freq всегда будет 0"