10.03.2020, 02:20
|
|
Прописка
Регистрация: 17.03.2015
Сообщений: 296
Сказал спасибо: 0
Сказали Спасибо 220 раз(а) в 126 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от Ara41
|
Есть ли возможность в протеусе коммутировать питание-землю?
|
Сообщение от Ara41
|
Вроде задан конкретный вопрос
|
В том то и дело, что не совсем конкретный.
Ответ достаточно сильно зависит от того какую задачу Вы пытаетесь решить.
К примеру, самый простой способ для аналогового выхода - применить DAC (см. рис1).
Здесь свои "заморочки" - как видно, некорретно отрабатывается отключение по V+.
Если же нужен только цифровой выход, то TRIBUFFER является самым простым решением (см. рис2, 3).
Здесь, резисторы, подключенные к выходу, нужны для более корректного отображения аналогового сигнала. Если же используется только цифровой, то они не нужны.
Если нужно получить более детальный аналоговый выход, то можно повторить выходной транзисторный каскад ТТЛ микросхемы или создавать свою DLL-модель.
В первом случае - это нагрузка на симулятор, во втором - трудозатратно, хотя и решает все заложенные в модель задачи (см. рис4).
В любом случае, простого решения данный вопрос не имеет.
|
|
|
|
10.03.2020, 10:02
|
|
Почётный гражданин KAZUS.RU
Регистрация: 30.09.2006
Сообщений: 1,560
Сказал спасибо: 158
Сказали Спасибо 661 раз(а) в 431 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от ProtAS-13
|
В том то и дело, что не совсем конкретный.
Ответ достаточно сильно зависит от того какую задачу Вы пытаетесь решить.
|
хотелось включать-выключать питание модели счетчика.
|
|
|
|
10.03.2020, 10:42
|
|
Прописка
Регистрация: 07.08.2013
Адрес: Кирьят Ям
Сообщений: 152
Сказал спасибо: 3
Сказали Спасибо 115 раз(а) в 72 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от Ara41
|
хотелось включать-выключать питание модели счетчика.
|
А смысл? Ну не электроэнергию же экономить
Если счет останавливать, так просто выход от схемы отключить.
|
|
|
|
10.03.2020, 10:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 12.11.2004
Адрес: Москва
Сообщений: 8,597
Сказал спасибо: 707
Сказали Спасибо 4,355 раз(а) в 1,997 сообщении(ях)
|
Re: Proteus общие вопросы
Тут все просто. Такие вопросы возникают только у тех, кому еще рано пользовать Протеус.
__________________
Я не помогаю. Я провоцирую думать.
Не дай вам Бог плохих контактов.
|
|
|
|
10.03.2020, 14:41
|
|
Частый гость
Регистрация: 10.11.2019
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Proteus общие вопросы
Здравствуйте всем. Не могу разобраться, почему при включении глобального прерывания, Proteus ругается "[PIC16 CORE] PC=0x037F. Indirection address (0xFFFF) for INDF1 register is outside writable data memory - no write occurs. [U1]
", и тут же их выключает. Причем тут PIC 16ть, везде в конфигурации прописан 12й PIC? Файл с проектом прилагаю. PIC 12F1501, компилятор XC8, язык Си. Попытка написать код под ДХО автомобиля. Там кода почти нет, в проекте пока одна борьба с включением глобальных прерываний.
https://yadi.sk/d/qd4fGd3O88AudQ
|
|
|
|
10.03.2020, 20:28
|
|
Гражданин KAZUS.RU
Регистрация: 10.06.2010
Сообщений: 598
Сказал спасибо: 222
Сказали Спасибо 234 раз(а) в 154 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от Ganinoff
|
Там кода почти нет
|
точнее его там нет , от слова ВООБЩЕ.
|
|
|
|
10.03.2020, 22:04
|
|
Частый гость
Регистрация: 10.11.2019
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от DmitriyVDN
|
точнее его там нет , от слова ВООБЩЕ.
|
А зачем он там? Попробуйте раскомментировать одну из строк:
Код:
|
INTCONbits.GIE=1;
GIE=1;
INTERRUPT_GlobalInterruptEnable(); |
Код:
|
void main(void)
{
// initialize the device
SYSTEM_Initialize();
//INTCONbits.GIE=1;
//GIE=1;
// When using interrupts, you need to set the Global and Peripheral Interrupt Enable bits
// Use the following macros to:
// Enable the Global Interrupts
//INTERRUPT_GlobalInterruptEnable(); |
И все повисло.
Смысл его писать, если не возможно разрешить глобальные прерывания.
Или в архиве по ссылке его нет?
Двойной клик по файлу Block.pdsprj , нажать на иконку "Source Code" и он появиться.
Последний раз редактировалось Ganinoff; 10.03.2020 в 22:22.
|
|
|
|
10.03.2020, 22:34
|
|
Гражданин KAZUS.RU
Регистрация: 10.06.2010
Сообщений: 598
Сказал спасибо: 222
Сказали Спасибо 234 раз(а) в 154 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от Ganinoff
|
Смысл его писать
|
смысл в том, что половина пользователей форума не используют восьмой протез
предлагаете его установить за ради посмотреть че вы там накодили?
|
|
|
|
11.03.2020, 00:12
|
|
Прописка
Регистрация: 17.03.2015
Сообщений: 296
Сказал спасибо: 0
Сказали Спасибо 220 раз(а) в 126 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от Ara41
|
хотелось включать-выключать питание модели счетчика.
|
А Вы точно знаете как ведет себя счетчик при отключенных контактах питания?
Не спешите отвечать на этот, казалось бы, абсурдный вопрос - подумайте.
Я провел "натурные испытания" со счетчиком 155ИЕ5, выходы, которого подключены на вход логического элемента 3И-НЕ (155ЛА4).
На картинке 1 представлены выходы счетчика при наличии питания (VCC=ON / GND=ON).
На картинке 2 (VCC=OFF / GND=ON), несмотря на отсутствие +5V, на выходах счетчика присутствует напряжение "обрыва" от входов нагрузочного компонента.
На картинке 3 (VCC=ON / GND=OFF), несмотря на отсутствие GND, счетчик продолжает работать, беря в качестве "земли" напряжение "обрыва" от входов нагрузочного компонента.
Картинка 4 (VCC=OFF / GND=OFF), аналогична ситуации с отсутствием VCC (картинка 2).
Стоит лишь отсоединить нагрузку - картинка 5 (VCC=OFF / GND=OFF), как все выходы начинают повторять входную частоту с сильно уменьшенной амплитудой.
Как Вы можете видеть, поведение счетчика, в "выключенном" состоянии, достаточно сильно зависит, как от того какая шина питания отключена, так и от наличия нагрузочных компонентов.
Имеет ли смысл все это моделировать - очевидно же, что нет, т.к. отключение питания для отдельного компонента схемы обеспечивает непредсказуемое поведение всей схемы, а отключение питания всей схемы можно спрогнозировать и без симулятора.
|
|
|
Сказали "Спасибо" ProtAS-13
|
|
|
11.03.2020, 09:41
|
|
Частый гость
Регистрация: 10.11.2019
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от DmitriyVDN
|
смысл в том, что
|
Код:
|
/* Main.c file generated by New Project wizard
*
* Created: Ср мар 11 2020
* Processor: PIC12F1501
* Compiler: MPLAB XC8
*/
// Configuration bits: selected in the GUI
// CONFIG1 0x1FA4
#pragma config FOSC = INTOSC // Oscillator Selection Bits-›INTOSC oscillator: I/O function on CLKIN pin
#pragma config WDTE = OFF // Watchdog Timer Enable-›WDT disabled
#pragma config PWRTE = OFF // Power-up Timer Enable-›PWRT disabled
#pragma config MCLRE = ON // MCLR Pin Function Select-›MCLR/VPP pin function is MCLR
#pragma config CP = OFF // Flash Program Memory Code Protection-›Program memory code protection is disabled
#pragma config BOREN = ON // Brown-out Reset Enable-›Brown-out Reset enabled
#pragma config CLKOUTEN = OFF // Clock Out Enable-›CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin
// CONFIG2 0x1FFC
#pragma config WRT = OFF // Flash Memory Self-Write Protection-›Write protection off
#pragma config STVREN = ON // Stack Overflow/Underflow Reset Enable-›Stack Overflow or Underflow will cause a Reset
#pragma config BORV = LO // Brown-out Reset Voltage Selection-›Brown-out Reset Voltage (Vbor), low trip point selected.
#pragma config LPBOR = OFF // Low-Power Brown Out Reset-›Low-Power BOR is disabled
#pragma config LVP = OFF // Low-Voltage Programming Enable-›Low-voltage programming enabled
#include ‹xc.h›
void SYSTEM_Initialize(void);
void SYSTEM_Initialize(void)
{
GIE = 0; //INTCON ‹7›
INTCON = 0; //GIE,PIE,TMR0IE,INTIE,RBIE,TMR0IF,INTF,RBIF==0;
PIE1 = 0; //-ADIE--SSPIE,CCP1IE,TMR2IE,TMR1IE ==0;
PORTA = 0b00000000;
OPTION_REG = (unsigned char)((OPTION_REG & 0xC0) | (0xD7 & 0x3F));
CLRWDT();
TMR0 = 0x00;
INTCONbits.TMR0IF = 0;
INTCONbits.TMR0IE = 1;
PSA = 0; //Prescaler is assigned to the Timer0 module
PS2 = 1;
PS1 = 1;
PS0 = 1; //TMR0 Rate 1:256!
/************************************************** *********/
WDTCON = 0x16;// WDTPS 1:65536; SWDTEN OFF;
LATA = 0x00;
TRISA = 0x2D;
ANSELA = 0x00;
WPUA = 0x00;
OPTION_REGbits.nWPUEN = 1;
APFCON = 0x00;
OSCCON = 0x7A;//// SCS INTOSC; IRCF 16MHz_HF;
BORCON = 0x00;// SBOREN disabled; BORFS disabled;
//INTCONbits.GIE=1;
}
void main(void)
{
SYSTEM_Initialize();
//INTCONbits.GIE=1;
while (1)
{
static unsigned int counter0=0xFFFF;
counter0--;
if(!counter0)
{counter0=0xFFFFF;
RA1=1;//INTCONbits.GIE=1;
}
}
} |
Это упрощенный вариант в одном файле, без хеадеров. В главном цикле, рыба. Все виснет при включении глобальных прерываний.
Полные исходники в папке source по первой ссылке, но смотреть их смысла нет, если даже в таком виде не включаются глобальные.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:03.
|
|