Задержка в 0,1мкс

Обсуждаем контроллеры компании Atmel.
Ответить
Встал на лапы
Сообщения: 80
Зарегистрирован: Вс фев 21, 2021 13:01:40
Откуда: Прокопьевск

Сообщение Михаил_avr »

Спойлер

Код: Выделить всё

.      #define F_CPU 16000000UL //частота 16 мегагерц
#include <avr/io.h>      // Подключим файл io.h
#include <util/delay.h>  // Подключим файл delay

int i;

int main(void)
{
    DDRB|=(1<<PD5);
    TCCR0A|=(1<<WGM01);//сброс при совпадении
    TCCR0B|=(1<<CS00);  //предделитель на 1
    OCR0A=160;
    TIMSK0|=(1<<OCIE0A);
    i=10000;
    sei();
    
    while (1)
    {
        i=10000;
        
        while(i)
        {
          
        }
        PORTB=1<<5 ;
      i=10000;
        while(i)
        {
          
        }
    
        PORTB=0<<5;
    }
    
}
ISR (TIMER0_COMPA_vect)
{
    i--;
}  
Здравствуйте,все,я хотел сделать задержку в 0,1 МКС,а чтобы проверить написал программу для мигания светодиодом,но так не работает ,если же запись в порт поместить в цикл то все работает ,но это не годиться,а хотелось бы делать вот так

Код: Выделить всё

while(i){}
PORTB^=1<<5;
но только не знаю как это исправить
Реклама
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

Михаил_avr писал(а):задержку в 0,1 МКС
Михаил_avr писал(а):для мигания светодиодом
Куда мир катится :facepalm:
Контактная информация:
Реклама
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Сообщение dgrett »

Какие нахрен циклы? На указанной частоте 2 такта уже 0,125 мкС!
Я всё-всё узнAю и стану профессором.
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Сообщение Dimon456 »

Неужели нельзя просто сказать человеку, по чему его код не работает?
Реклама
Эиком - электронные компоненты и радиодетали
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

Знать почему, и что значит "не работает" - сказали бы :dont_know:
Контактная информация:
Реклама
Модератор
Аватара пользователя
Сообщения: 19055
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

Dimon456 писал(а):Неужели нельзя просто сказать человеку, по чему его код не работает?
ну так скажи. или обязательно кто-то другой это должен сказать, а не ты?
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Реклама
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Сообщение Dimon456 »

Пропущен квалификатор volatile

Код: Выделить всё

volatile int i;
Друг Кота
Аватара пользователя
Сообщения: 25398
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="Dimon456",url="/forum/viewtopic.php?p=4049934#p4049934"]Пропущен квалификатор[/uquote]
Это вы серьезно? :)))
То есть если волатайл вставить, то можно при машинном цикле в 62,5 нс дергать ногой создавать задержку с разрешением в 100 нс?
:tea:
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Сообщение Dimon456 »

КРАМ писал(а):Это вы серьезно?
Да, серезно
Михаил_avr писал(а):чтобы проверить написал программу для мигания светодиодом
учитывая настройку таймера прерывание отрабатывает со скоростью 10мкс.
Этот кусок кода

Код: Выделить всё

i=10000;       
        while(i)
        {        
        }
        PORTB=1<<5 ;
отработает через 10мкс*10000 = 0,1с.
Стоило бы догадаться о чем речь идет.

Если отключить оптимизацию, можете без квалификатора volatile обойтись, в противном случае его i=10000; и что там далее просто компилятром будет пропущено.

А вопрос был
Михаил_avr писал(а):но так не работает
а хотелки
Михаил_avr писал(а):хотелось бы делать вот так
Михаил_avr писал(а):но только не знаю как это исправить
Друг Кота
Аватара пользователя
Сообщения: 25398
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="Dimon456",url="/forum/viewtopic.php?p=4050038#p4050038"]Стоило бы догадаться о чем речь идет.[/uquote]
ТС дважды, в заголовке и сообщении (причем в сообщении капсом), повторил свои притязания на 100 нс. С чего бы мне догадаться, что речь идет о 100 мс? Может о 100 мкс? Или вообще о 0,1 мин?
Опытный кот
Аватара пользователя
Сообщения: 882
Зарегистрирован: Ср дек 01, 2010 00:38:15
Откуда: Харьков

Сообщение slav0n »

шо он там хочет контролировать такой задержкой
ohmycode!
primuss3.com
Контактная информация:
Аватара пользователя
Сообщения: 1781
Зарегистрирован: Пн июн 24, 2013 23:00:42
Откуда: Казахстан

Сообщение Рязанцев Владислав »

А чего-нибудь побыстрее не вариант? ESP32 например.
Изображение
Ваши хотелки за ваши деньги
Встал на лапы
Сообщения: 80
Зарегистрирован: Вс фев 21, 2021 13:01:40
Откуда: Прокопьевск

Сообщение Михаил_avr »

Dimon456 писал(а):Пропущен квалификатор volatile

Код: Выделить всё

volatile int i;
спасибо большое реально заработало!
slav0n писал(а):шо он там хочет контролировать такой задержкой
по vga что нибудь простое вывести

Добавлено after 17 minutes 34 seconds:
Всем остальным тоже спасибо
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Сообщение Dimon456 »

Михаил_avr писал(а):по vga что нибудь простое вывести
а за чем вам в vga задержка в 0,1мкс?
Для нормального разрешения 0,1мкс мало, вот, к примеру, на стандартной частоте кварца 16МГц
СпойлерИзображение

Исходники тут
Встал на лапы
Сообщения: 80
Зарегистрирован: Вс фев 21, 2021 13:01:40
Откуда: Прокопьевск

Сообщение Михаил_avr »

Ну там разрешение 640 на 480, а вот для 800 на 600 хватает

Добавлено after 14 minutes 52 seconds:
Изображение
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Сообщение Dimon456 »

Михаил_avr писал(а):а вот для 800 на 600 хватает
Чего хватает? На четыре квадрата? Вы какой нибудь текст выведите сначала.
Тем более у вас нарушена синхронизация.
Встал на лапы
Сообщения: 80
Зарегистрирован: Вс фев 21, 2021 13:01:40
Откуда: Прокопьевск

Сообщение Михаил_avr »

Dimon456 писал(а):1)Чего хватает ? 2) Вы какой нибудь текст выведите сначала.
3)Тем более у вас нарушена синхронизация.
1)задержки
2)хорошо попробую
3)где?
Встал на лапы
Сообщения: 80
Зарегистрирован: Вс фев 21, 2021 13:01:40
Откуда: Прокопьевск

Сообщение Михаил_avr »

https://img.radiokot.ru/files/143954/2k0ku92328.jpg
Ну вот такая буква П получилась (мне не очень понравилось её качества), попробую 640х480 ведь оно более медленное)
Модератор
Аватара пользователя
Сообщения: 19055
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

Михаил_avr, уменьшай картинку до разумных пределов или давай просто ссылку.
не помещай в текст такой огромный размер.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Встал на лапы
Сообщения: 80
Зарегистрирован: Вс фев 21, 2021 13:01:40
Откуда: Прокопьевск

Сообщение Михаил_avr »

А как её уменьшать?
Ответить

Вернуться в «AVR»