Перейти к содержанию

Динамическая Индикация+прерывание На Пине.


l-e-o-n-a-r-d-o

Рекомендуемые сообщения

Здравствуйте. Я не могу абсолютно понять повеение тини 2313. У мен схемка такая: к порту Б подключены катоды 3-разряжного семиэлементного индикатора, к D6 D5 D4- общие аноды. прерывание по ножке инт 0 и инт1 (пока что не использовано).

так вот. Динамическая индикация работает отлично, если в мейне оставить

#include <tiny2313.h>
#include<delay.h>

const flash char digit[10]={0b11000000,0b11111001,0b10100100,0b10110000,0b10011001,0b10010010,0b10000010,0b11111000,0b10000000,0b10010000};
const flash char pos[3]={0b01000000,0b00100000,0b00010000};
volatile char i[7];
volatile int n=0;

void wr(int x)
{

char h=0,d=0; 

while (x>= 100)
{ x-=100;
 h++;
}
while (x>= 10)
{ x-=10;
 d++;
}
i[0]=x;
i[1]=d;
i[2]=h;



}



// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{  
static char j;
TIMSK=0x00;
PORTD=0;  
PORTB=0;

PORTB=digit[i[j]];
PORTD=pos[j];
j++;

// Reinitialize Timer 0 value
 TCNT0=254;
// Place your code here

if (j>2) j=0;  
TIMSK=0x02;
}


// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
// Place your code here
n++;
delay_ms(2);
wr(n);
if (n>999) n=0; 
}

// External Interrupt 1 service routine
interrupt [EXT_INT1] void ext_int1_isr(void)
{
// Place your code here

}

void main(void)
{
int f;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 65,625 kHz
// Mode: Normal top=FFh
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x00;
TCCR0B=0x03;
TCNT0=0xFE;
OCR0A=0x00;
OCR0B=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x02;

// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: Low level
// INT1: On
// INT1 Mode: Low level
// Interrupt on any change on pins PCINT0-7: Off
GIMSK=0xC0;
MCUCR=0x00;
EIFR=0xC0;


DDRD.4=1;
DDRD.5=1;
DDRD.6=1;

DDRD.3=0;
DDRD.2=0;


DDRB=255;
PORTD=0;
PORTB=0;
// Global enable interrupts
#asm("sei") 
f=0;
while (1)
  {

//f++;

 //  if (f>999)  {f=0;}
  //  wr(f);
  //   delay_ms(100);

  };
}

чем шире кругозор, тем тупее угол обозрения

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

>MCUCR=0x00;

я на этом тоже один раз прокололся, нада правильно настроить MCUCR. у тя прерывание вызываеться постоянно когда на ножке 0. скорость выполнения прерыванния 1/4 от тактовой частоты, соответственно у тя МК виснет. выставь прерывание по ниспадающему и будет всё ОК! :)

кстате, в протеусе и правда в таком случае МК не всинет

Изменено пользователем Br.Misha
Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

И сразу учитесь НЕ ИСПОЛЬЗОВАТЬ в прерываниях delay !!!! Меняйте глобальную переменную и уже в маину решайте что с ней делать. Иначе потом будете искать ошибки которые будут появляться иногда и которые очень тяжело ищются..

Ссылка на комментарий
Поделиться на другие сайты

Hongfa для различных применений в Компэл. Большой выбор в наличии!

Компания HONGFA - это не только крупнейший в мире производитель электромеханических реле, но также производитель конденсаторов, вакуумных прерывателей, трансформаторов и низковольтного коммутационного оборудования. На складе КОМПЭЛ регулярно поддерживаются около 100 самых популярных позиций электромеханических реле. Реле Hongfa могут заместить многие изделия производства недоступных брендов. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Br.Misha

спасибо, действительно помогло!

MCUCR=0x0A; заработало. :)

wowa

я знаю, просто вчера я уже все что угодно пробовал...

чем шире кругозор, тем тупее угол обозрения

Ссылка на комментарий
Поделиться на другие сайты

Тренды и лучшие решения для разработки зарядных станций в России

К 2029 году в России прогнозируется увеличение числа зарядных станций до 40 000. При этом отечественный рынок электротранспорта имеет климатические, потребительские и географические особенности. Для успешной разработки и построения инфраструктуры станций заряда в России идеальным вариантом является использование решений и электронных компонентов китайских производителей – лидеров индустрии электротранспорта и возобновляемой энергетики, которые уже представлены в КОМПЭЛ. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Секреты депассивации литиевых батареек FANSO EVE Energy

Самыми лучшими параметрами по энергоемкости, сроку хранения, температурному диапазону и номинальному напряжению обладают батарейки литий-тионилхлоридной электрохимической системы. Но при длительном хранении происходит процесс пассивации. Разберем в чем плюсы и минусы, как можно ее избежать или уменьшить последствия и как проводить депассивацию батареек на примере продукции и рекомендаций компании FANSO EVE Energy. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

потому что за это время можно пропустить другие прерывания, или сработает какое то другое, или даже это же самое, а процедуры которые были в теле прерывания еще не выполнились, как вновь с начала оно начинается. Ну как то так :unsure:

чем шире кругозор, тем тупее угол обозрения

Ссылка на комментарий
Поделиться на другие сайты

но ведь без задержек тоже может быть

повторное прерывание во время оброботки

если оброботчик большой и занимает много времени

что будет тогда ?

или если вовремя выполнения одного прерывания

произойдет другое прерывание

что тогда будет ?

если тебя ударили по левой щеке — подставь правую... руку и с разворота бей ногой в челюсть

Ссылка на комментарий
Поделиться на другие сайты

произойдет другое прерывание

что тогда будет ?

каша тогда будет :) мк зависнет, или вы долго не будете понимать что с ним происходит.. вот кстати как у меня это было (эта тема)

если оброботчик большой и занимает много времени

обычно рекомендация такая : в прерываниях установить лишь какие то флаги (например а=1), которые анализировать в мейне (if (а==1) {}...)

чем шире кругозор, тем тупее угол обозрения

Ссылка на комментарий
Поделиться на другие сайты

>или если вовремя выполнения одного прерывания

>произойдет другое прерывание

непроизойдет. во время выполнения одного прерывания остальные отключаються глобально

Ссылка на комментарий
Поделиться на другие сайты

непроизойдет. во время выполнения одного прерывания остальные отключаються глобально

тоесть например пришел какойто важный импульс на вход прерывания

а контроллеру пофиг он в это времья озабочен другим важным импульсом

тогда мы потеряем сигнал

и это не гуд <_<

если тебя ударили по левой щеке — подставь правую... руку и с разворота бей ногой в челюсть

Ссылка на комментарий
Поделиться на другие сайты

увы......

когда вызываеться прерывание то сбрасываеться бит I в регистре SREG и никакое другое прерывание не произойдет пока не закончиться выполнение вызваного. сработает тока прерывание по адресу $000

Ссылка на комментарий
Поделиться на другие сайты

Когда работает обработчик прерывания , никакое другое прерывание непроизойдет , это верно, НО флаг события установиться !!! . И при окончании обработчика МК выполнит ОДНУ команду и завалиться выполнять следующий обработчик , и нефакт что тот о котором ВЫ мечтали . Приоритет выполнения прерывание отнють не однозначен.

Ссылка на комментарий
Поделиться на другие сайты

тоесть в любом случае сигнал неупустим да ?

насчет приоритета несовсем понял :(

можно ли устанавливать приоритет для прерываний посвоему или нет ?

допустим одновременно приходят два прерывания какой из них должен выполняться первым

если тебя ударили по левой щеке — подставь правую... руку и с разворота бей ногой в челюсть

Ссылка на комментарий
Поделиться на другие сайты

...Приоритет выполнения прерывание отнють не однозначен.

Вполне себе однозначен. Определяется адресом вектора прерывания...

Любой, заслуживающий внимания, опыт приобретается себе в убыток...

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • Идеями, которые в них заложены. Идеи эти не мои, все уже украдено до нас, как известно. Например, использование стабилизатора потребляемого тока (он же стабилизатор Назара) в низковольтных транзисторных БП широко обсуждалось на Вегалабе. Там тоже были сомнения (иногда в стиле "нахрена козе баян") по поводу полезности такого стабилизатора, достаточно сказать, что известный Вам Семигор его не принял. Можно предположить, что такой стаб улучшит условия работы идущего перед ним стабилизатора напряжения. По существу, без словесной аудиофильской клюквы, мало кто внятно скажет о его пользе или вреде. Только спец по стабилизаторам напряжения, коих, как всегда по узкому вопросу, в России несколько человек. Итого. Есть идея. Можно предположить, что она полезна. Обосновать ее применеие теоретически я не могу. Можно ее перенести в БП для лампового усилителя. Критерий - звук. Собираем из хороших деталей, слушаем было/стало. Делаем вывод: работает идея или нет. Подбираем детали по звуку. Используем эту схему в других БП как основу. Вы этот дребадан от меня хотели услышать? Вы по-другому работаете? Я здесь предложил попробовать схемные решения, отработанные и отлично показавшие себя, в варианте для ушного усилителя. Не утверждаю, что подойдут к вашим схемам, но вероятность полезности очень высока. Узнать это можно только в сравнении. Кстати, как бы Вы обосновали применение предложенной Вами схемы смещения? Это без подколки, хочу знать, что Вы хотели от меня услышать. Эта схема мне знакома, но по некоторым своим соображениям, возможно, ложным, от нее отказался.
    • если вам очень надо купите делители, в любом радиоларьке раньше были, с разным ослаблением на отводах. всё зависит от расстояния между источником и мониторами( раз это не указано, то можно подумать, всё в пределах комнаты). плюс земляные петли могут доставать неприятности. или нет.
    • Залезьте в даташит и посмотрите в разделе Configuration Words, какие биты установлены у этого чипа. Там три слова конфигурации. Ваш программатор видимо их прочитал. Если установлены биты защиты, ничего вы с него не прочитаете.
    • Причём тут камера и тем более паспорт?! Внимательнее мой вопрос читать нужно. Во-первых камера тут не причем, может быть любой источник AV сигнала, во-вторых, я написал что у меня нет всех запчастей, камеры тоже нет ещё. И толку с её паспорта? В паспортах не рисуют схемы подключения нескольких мониторов. Там на странице описания то пару картинок и то без схем. А тем более она обычная китайская за 500 руб, там и паспорта то нет скорее всего.    Я же написал что не могу - потому что ещё не пришло оборудование. Вот и спохватился может еще чего надо заказать, так понятнее? В электронике я понимаю, но с системами видеонаблюдения и телевидения к сожалению не сталкивался, поэтому и спросил совета. Я так понимаю есть какой-то AV сигнал (или композитный или компонентный? или это разное?) который использует простой обычный провод как в аудиотехнике с тюльпанами, а есть ВЧ сигнал, который идет с антенны через ВЧ разъемы BNC, вот он получается модулированный, или как там правильно, и он передается по специальному коаксиальному кабелю с волновым сопротивлением 75 ом, и чтобы не спалить устройства по КСВ и тд нужны выравнивающие балластные резисторы 75 ом для достижения чего-то там (бегло изучил теорию ТВ-передачи).
    • Судя по виду, типичный представитель китайпрома, с драйвером, распаянным на плате со светодиодами (скрыт под рамкой). Как писали выше, перепаивать светодиоды нецелесообразно, проще купить на Али готовую плату примерно подходящего размера. Если, конечно, удасться оторвать стекло без повреждений.
    • Сейчас еще с десяток форумов окучит, где-нибудь да подадут. Ну или Бориса_У ждать.
×
×
  • Создать...