Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 11.03.2020, 21:39  
DmitriyVDN
Гражданин KAZUS.RU
 
Регистрация: 10.06.2010
Сообщений: 584
Сказал спасибо: 222
Сказали Спасибо 232 раз(а) в 152 сообщении(ях)
DmitriyVDN на пути к лучшему
По умолчанию Re: Proteus общие вопросы

Сообщение от Ganinoff Посмотреть сообщение
если даже в таком виде не включаются глобальные.
все у тебя включается, у тебя тупо отсутствует обработчик прерывания , от слова ВООБЩЕ , открывай мануал на XC8 и читай как описывается функция прерывания
Реклама:
DmitriyVDN вне форума  
Непрочитано 12.03.2020, 00:35  
Ganinoff
Частый гость
 
Регистрация: 10.11.2019
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Ganinoff на пути к лучшему
По умолчанию Re: Proteus общие вопросы

Сообщение от DmitriyVDN Посмотреть сообщение
все у тебя включается, у тебя тупо отсутствует обработчик прерывания
Спасибо, уже разобрался.
Согласен, в приведенном примере он отсутствует. Но в примере по первой ссылке еще как присутствует. Нужно было его обозвать по другому для этого компилятора.
Стал отзываться при одном из нижеследующих именований.
Код:
interrupt void isr_lo(void)
interrupt void isr_hi(void)
void interrupt isr(void)
void interrupt my_isr(void)
Еще раз спасибо DmitriyVDN и Мануалу.
Ganinoff вне форума  
Непрочитано 23.03.2020, 15:28  
pifa
Гражданин KAZUS.RU
 
Регистрация: 26.12.2005
Сообщений: 586
Сказал спасибо: 23
Сказали Спасибо 68 раз(а) в 45 сообщении(ях)
pifa на пути к лучшему
По умолчанию Re: Proteus общие вопросы

Вопрос по script для выдачи в UART. При выдаче в UART в конце каждой строки дублируется последний символ. Не могу найти ошибку. Может кто-то работал с подобными script'ами и может что-то посоветовать.
Вложения:
Тип файла: rar Disp.rar (18.1 Кб, 0 просмотров)
pifa вне форума  
Непрочитано 23.03.2020, 16:34  
Ara41
Почётный гражданин KAZUS.RU
 
Регистрация: 30.09.2006
Сообщений: 1,560
Сказал спасибо: 158
Сказали Спасибо 661 раз(а) в 431 сообщении(ях)
Ara41 на пути к лучшему
По умолчанию Re: Proteus общие вопросы

Сообщение от pifa Посмотреть сообщение
Не могу найти ошибку.
RETURN потерялся
Код:
OUTSTRING:

FOR i=1 TO LEN(s)
  d = ASC(SUBSTR(s,i))
  GOSUB OUTCHAR
NEXT i
RETURN
Ara41 вне форума  
Сказали "Спасибо" Ara41
pifa (24.03.2020)
Непрочитано 24.03.2020, 14:00  
pifa
Гражданин KAZUS.RU
 
Регистрация: 26.12.2005
Сообщений: 586
Сказал спасибо: 23
Сказали Спасибо 68 раз(а) в 45 сообщении(ях)
pifa на пути к лучшему
По умолчанию Re: Proteus общие вопросы

Сообщение от Ara41 Посмотреть сообщение
RETURN потерялся
Именно оно. Большое спасибо.
pifa вне форума  
Непрочитано 26.03.2020, 08:45  
E_C_C
Почётный гражданин KAZUS.RU
 
Аватар для E_C_C
 
Регистрация: 08.05.2008
Адрес: регион 63
Сообщений: 1,827
Сказал спасибо: 739
Сказали Спасибо 683 раз(а) в 386 сообщении(ях)
E_C_C на пути к лучшему
По умолчанию Re: Proteus общие вопросы

Всем привет ! Народ помогите разобраться . Мега 8 простенькая программа , по приходу импульса на внешнее прерывание выдает на три пина порта В импульсы со сдвигом. Никак не отловлю глюк, почему импульсы на выходе иногда получаются двойной длины. Посмотрите , может у меня протеус глючит ? Что то никак не пойму, отладку пошаговую делал , такое впечатление, что по выходу из прерывания программа возвращается не туда, откуда был вход. Адрес стека что ли сносит ? Проект прилагаю.
Миниатюры:
Нажмите на изображение для увеличения
Название: 11.jpg
Просмотров: 0
Размер:	62.5 Кб
ID:	151532  
Вложения:
Тип файла: rar Desktop.rar (37.1 Кб, 0 просмотров)
__________________
Да здравствует Разум,да сгинет Маразм!

Последний раз редактировалось E_C_C; 26.03.2020 в 09:38.
E_C_C вне форума  
Непрочитано 26.03.2020, 17:10  
j-Roger
Гражданин KAZUS.RU
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 674
Сказал спасибо: 360
Сказали Спасибо 753 раз(а) в 358 сообщении(ях)
j-Roger на пути к лучшему
По умолчанию Re: Proteus общие вопросы

Сообщение от E_C_C Посмотреть сообщение
Проект прилагаю.
E_C_C, а исходник(и)?
j-Roger вне форума  
Непрочитано 27.03.2020, 07:35  
E_C_C
Почётный гражданин KAZUS.RU
 
Аватар для E_C_C
 
Регистрация: 08.05.2008
Адрес: регион 63
Сообщений: 1,827
Сказал спасибо: 739
Сказали Спасибо 683 раз(а) в 386 сообщении(ях)
E_C_C на пути к лучшему
По умолчанию Re: Proteus общие вопросы

j-Roger, пардон , вот они-
Код:
#include ‹mega8.h›  
 
  
 
     unsigned int time_count; 
     
     unsigned int delay_A,delay_B,delay_C,length_A,length_B,length_C  ;
     
     unsigned char flag1,flag2,flag3,flag4,flag5,flag6,flag7;
     
      unsigned int delay_time=20; 
        unsigned int length_pulse=50; 


// External Interrupt 1 service routine            // прерывание по синхре 
interrupt [EXT_INT1] void ext_int1_isr(void)
{
          #asm("wdr")
        flag1=1;
        flag2=1;
        flag3=1;
        flag4=1;
        flag5=1;
        flag6=1;
        flag7=1; 
              
        time_count=0;
              
        
       
}




  // Timer2     10mks
 interrupt [TIM2_COMP] void timer2_comp_isr(void)
  { 
   #asm("wdr")
   
    if((time_count‹1000)&&(flag7))
       {
          time_count++;
           };
   }





 

void main(void)
{

PORTB=0x00;
DDRB=0xFF;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
TCCR0=0x00;
TCNT0=0x00;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x0A;
TCNT2=0x00;
OCR2=0x0A;
GICR|=0x80;
MCUCR=0x0C;
GIFR=0x80;
TIMSK=0x80;  
SPCR=0x00;    
TWCR=0x00;

WDTCR=0x1E;
WDTCR=0x0E;


#asm("sei")


  delay_A = delay_time; 
   length_A = length_pulse+delay_time;  
    delay_B = delay_time+333; 
     length_B = length_pulse+delay_time+333;  
      delay_C = delay_time+666; 
       length_C = length_pulse+delay_time+666; 
  
  
     
while (1)
   {  
       #asm("wdr")
             
       if(( time_count›=delay_A)&&(flag1))         // выдыдим импульс 1
            {
              PORTB.3=1; 
                flag1=0;               
                };            
         if(( time_count›=length_A)&&(flag2))              
                   {
                   PORTB.3=0; 
                      flag2=0; 
                      
                        };            
        if(( time_count›=delay_B)&&(flag3))        // выдыдим импульс 2
            {
               PORTB.1=1;                
                  flag3=0;
                };                 
           if((time_count›=length_B)&&(flag4))
                {
                  PORTB.1=0; 
                     flag4=0;
                   };                 
          if((time_count›=delay_C)&&(flag5))      // выдыдим импульс 3
             { 
               PORTB.4=1; 
                  flag5=0;                
                };   
             if((time_count›=length_C)&&(flag6))
                {
                   PORTB.4=0; 
                    flag6=0;  
                       flag7=0;                        
                       };     
                   
      };  
      
}
__________________
Да здравствует Разум,да сгинет Маразм!
E_C_C вне форума  
Непрочитано 27.03.2020, 16:56  
DmitriyVDN
Гражданин KAZUS.RU
 
Регистрация: 10.06.2010
Сообщений: 584
Сказал спасибо: 222
Сказали Спасибо 232 раз(а) в 152 сообщении(ях)
DmitriyVDN на пути к лучшему
По умолчанию Re: Proteus общие вопросы

Сообщение от E_C_C Посмотреть сообщение
пардон , вот они-
КМК это из-за установки флагов и сброса счетчика при синхронизации.
к примеру выполнилась проверка на delay_B вывод PORTB.1=1, прилетела синхронизация сбросился счетчик , порт остался в 1 пока счетчик не досчитает до length_B
или нет?
DmitriyVDN вне форума  
Непрочитано 27.03.2020, 18:28  
E_C_C
Почётный гражданин KAZUS.RU
 
Аватар для E_C_C
 
Регистрация: 08.05.2008
Адрес: регион 63
Сообщений: 1,827
Сказал спасибо: 739
Сказали Спасибо 683 раз(а) в 386 сообщении(ях)
E_C_C на пути к лучшему
По умолчанию Re: Proteus общие вопросы

Синхронизация идет с частотой 100гц , т.е через 10 мсек, первый импульс должен сгенерироваться через 20 микросекунд , следующий через 3333мкс + 20 и третий через 6666мкс+ 20. ширина импульса 50 мкс. До следующего синхроимпульса ещё 3000мкс .Не должно быть пересечений , но они есть. Заметил , что от того как я объявляю переменные - char, integer , unsigned integer , или делаю их volatile integer , картина выходных импульсов меняется . Это вообще за гранью моего понимания. Такое впечатление , что происходят колизии в памяти программ .Иногда в пошаговой отладке я вижу, что происходит выход из прерывания по INT 1 , но часть флагов не выставлена в единицу , или наоборот флаги все в 1, но time_count не обнулился .
__________________
Да здравствует Разум,да сгинет Маразм!
E_C_C вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопросы по PROTEUS-у Advanced_LAMER Proteus 372 19.09.2021 01:20
Вопросы и замечания по топику - FAQ по PROTEUS avr123-nm-ru Proteus 291 05.06.2015 20:49
Вопросы по работе с Proteus dosikus Proteus 510 20.12.2007 18:48
CAN BUS общие впечатления vasseff Микроконтроллеры, АЦП, память и т.д 7 20.06.2007 09:15
Вопросы по Си. Zemlyanov Proteus, KiCAD и другие ECAD 5 20.11.2006 15:36


Часовой пояс GMT +4, время: 06:32.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot