while(PIND.0==1){}
delay_ms(500);
if(PIND.1==1)
{PORTB.0=1;}
while(PIND.1==1){}
delay_us(500);
if(PIND.1==0)
{PORTB.0=0;}
Команда не может выполняться 10 секунд, она выполняется очень быстро.Tolibbass писал(а):Подскажите как прописать чтобы команда выполнялась определенное время, допустим 10 сек
Не вижу в Вашем коде ничего, связанного с таймером. Какой таймер нужно "обнулить" ?Tolibbass писал(а):то таймер обнулялся
Код: Выделить всё
volatile int wait_counter;
обработчик_прерывания_таймера(){
// настройками таймера задается, как часто возникает прерывание
// допустим, оно возникает 100 раз в секунду
if(wait_counter) wait_counter--;
}
// допустим, мне нужно, чтобы ожидание нажатия кнопки продолжалось 10 секунд
// тогда в нужном месте я пишу так:
wait_counter = 10000; //100 раз - 1 секунда, 10000 - 10 сек
while(wait_counter){
if(key_pressed()){
// тут или делаем, что надо, или пишем
break; // для выхода из цикла ожидания
}
}
КОНКРЕТНОЕ объяснение проблемы ?Tolibbass писал(а):Нужно чтоб на portb.0 сигнал подавался 10 сек. В то де время если поступает сигнал с порта d сигнал должен прерываться и выполняться сл команда.
Значит пришло то самое время, когда их необходимо изучать. Что тут ещё можно сказать...Tolibbass писал(а):Таймеры пока темный лес
некоторые на форуме тупо висят годами и нифига больше не делают... только критикуют другихHHIMERA писал(а):А тупо висеть 10 сек и ничего не делать... ужос...
Сконфигурить, повесить обработчик, в обработчике щёлкать глобальным счётчиком. В главном цикле, как собака за хвостом, бегать по кругу и свободным глазом посматривать на этот счётчик - как только он изменился на нужное количество тиков - прыжок в сторону - делать дело и, с ободрённым лаем, двигать на очередной круг "догонялок" до следующего раза.Tolibbass писал(а):Я не могу понять как с помощью таймера прописать мою "хотелку" про 10сек.
Что ладно? Теперь не отвертитесь!Tolibbass писал(а):А ладно.......
Обычно вменяемая критика более действенна чем гадалки-подсказки ...ARV писал(а): нифига больше не делают... только критикуют других
Что ладно? Теперь не отвертитесь!Tolibbass писал(а):А ладно.......
Значит и не нужно... уже всё разжевали...вот как раз алгоритма я и не могу понять(((((
#include <tiny2313.h>
#include <delay.h>
В общем сам себе и отвечу. Может кому полезно будет. Все правильно я писал. Подвел Hi-Tech C PRO v9.71a. Есть такой файл pic12f1822.h в папке компилятора. Так вот там ошибка бита запуска PLL. Было: #define PLLEN_OFF 0xFDFF, а надо: #define PLLEN_OFF 0xFEFF. И всё заработало.Bkmz писал(а):Прошу помощи. PIC12F1822. Пытаюсь запустить от внутреннего генератора на 8 МГц. А он запускается только на 32 МГц.
Я делаю так: #define _XTAL_FREQ 4000000ser82g писал(а):И еще такой вопрос как выставляется частота работы микропроцессора?