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

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

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

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

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

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


 
Опции темы
Непрочитано 26.12.2009, 20:27  
UserM
Прописка
 
Регистрация: 14.08.2006
Сообщений: 106
Сказал спасибо: 19
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
UserM на пути к лучшему
По умолчанию Proteus & PIC PWM

Почему то не получается симулировать PWM в Proteus. В MPLAB и в железе работает, а в Протеусе нет . Подскажите плз. хде ошибка.

В приложенном файле проект в протеусе и исходный код.
Вложения:
Тип файла: zip PWM.zip (12.3 Кб, 119 просмотров)
Реклама:
UserM вне форума  
Непрочитано 26.12.2009, 22:35  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Proteus & PIC PWM

Проблема известная. На некоторых МК протеус отказывается симулировать ССР
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
UserM (27.12.2009)
Непрочитано 27.12.2009, 15:54  
UserM
Прописка
 
Регистрация: 14.08.2006
Сообщений: 106
Сказал спасибо: 19
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
UserM на пути к лучшему
По умолчанию Re: Proteus & PIC PWM

Ок, понятно.
UserM вне форума  
Непрочитано 27.12.2009, 22:32  
udar
Частый гость
 
Регистрация: 06.07.2006
Сообщений: 41
Сказал спасибо: 3
Сказали Спасибо 6 раз(а) в 4 сообщении(ях)
udar на пути к лучшему
По умолчанию Re: Proteus & PIC PWM

Вообще то на форуме есть поиск.
Работает всё,одну строчку добавить нужно.
https://kazus.ru/forums/showpost.php...8&postcount=63
https://kazus.ru/forums/showthread.php?t=14814
Твой исправленый файл
PWM1.rar

Последний раз редактировалось udar; 27.12.2009 в 22:43.
udar вне форума  
Сказали "Спасибо" udar
UserM (27.12.2009)
Непрочитано 27.12.2009, 23:50  
UserM
Прописка
 
Регистрация: 14.08.2006
Сообщений: 106
Сказал спасибо: 19
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
UserM на пути к лучшему
По умолчанию Re: Proteus & PIC PWM

Сообщение от udar Посмотреть сообщение
Работает всё,одну строчку добавить нужно.
Спасибо, можно и не добавлять. Похоже дело в порядке инициализации.
Т.е. Если в моём примере поменять Step4 и Step5 местами , то в Протеусе начинает работать.


Код:
;========== PWN ====================================
; Step 1 Set the PWM period (1000Hz = 0.001S) by writing to the PR2 register. 
   bsf STATUS,RP0
   movlw d'155'    ; when TMR2 = 155 = end of Period
   movwf PR2
   bcf STATUS,RP0

; Step 2  Set the PWM Duty Cycle by writing to the CCPR1L register and CCP1CON‹5:4› bits. 
   movlw b'01001110'  ; set bits 9 - 2
   movwf CCPR1L
   bcf CCP1CON,CCP1X  ; set bit 1
   bcf CCP1CON,CCP1Y  ; set bit 0

; Step 3 Make the CCP1 pin an output by clearing the TRISC‹2› bit
   bsf STATUS,RP0
   movlw b'11110111'
   andwf TRISB
   bcf STATUS,RP0

; Step 5 Configure the CCP1 module for PWM
   movf CCP1CON,W
   andlw b'00110000'  ; mask all but previously set Duty Cycle bits
   iorlw b'00001111'  ; and enable PWM mode
   movwf CCP1CON
  
; Step 4 Set The TMR2 prescale value and enable TMR2 by writing to T2CON
   movlw b'00000111'   ; TMR2 = on, prescale = 1:16
   movwf T2CON
   
   nop
   goto $-1
UserM вне форума  
Непрочитано 28.12.2009, 17:00  
Denis147
Прохожий
 
Регистрация: 28.12.2009
Сообщений: 5
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Denis147 на пути к лучшему
По умолчанию Re: Proteus & PIC PWM

Ребята аналогичная проблема
Только я на С пишу , подскажыте что можно зделать ?
Вложения:
Тип файла: rar PWM.rar (45.5 Кб, 69 просмотров)
Denis147 вне форума  
Непрочитано 28.12.2009, 22:56  
UserM
Прописка
 
Регистрация: 14.08.2006
Сообщений: 106
Сказал спасибо: 19
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
UserM на пути к лучшему
По умолчанию Re: Proteus & PIC PWM

Denis147, Ваш проект я посмотреть не могу, но я думаю можно попробовать не использовать библиотечную функцию "PWM_Start", а переписать её ручками, чтоб установка бита TMR2ON была последней командой в функции.
UserM вне форума  
Непрочитано 29.12.2009, 17:18  
Denis147
Прохожий
 
Регистрация: 28.12.2009
Сообщений: 5
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Denis147 на пути к лучшему
По умолчанию Re: Proteus & PIC PWM

Ну вот вроди так но всеравно неработает
unsigned short current_duty, old_duty;

void InitMain() {
ADCON1 = 6;
CMCON = 7;
PORTA = 255;
TRISA = 255; // configure PORTA pins as input
PORTB = 0; // set PORTB to 0
TRISB = 0; // designate PORTB pins as output
PORTC = 0; // set PORTC to 0
TRISC = 0;
PWM1_Init(5000); // Initialize PWM1 module at 5KHz
}

void main() {
InitMain();
//PWM1_Start(); // start PWM1
asm {
BSF STATUS, 5
BCF STATUS, 6
BCF TRISC2_bit, 2

BCF STATUS, 5

MOVLW 12
IORWF CCP1CON, 1
BSF T2CON, 2
}

while (1) { // endless loop
if (RA0_bit) { // button on RA0 pressed
Delay_ms(40);
current_duty++; // increment current_duty
PWM1_Set_Duty(current_duty);
}

if (RA1_bit) { // button on RA1 pressed
Delay_ms(40);
current_duty--; // decrement current_duty
PWM1_Set_Duty(current_duty);
}

portb = current_duty;
Delay_ms(5); // slow down change pace a little
}
}
Denis147 вне форума  
Непрочитано 29.12.2009, 22:54  
UserM
Прописка
 
Регистрация: 14.08.2006
Сообщений: 106
Сказал спасибо: 19
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
UserM на пути к лучшему
По умолчанию Re: Proteus & PIC PWM

Попробуйте так:
Код:
void main()
        {
        unsigned char   pwm ;

        TRISC = 0 ;
        PORTC = 0 ;

        PR2 = 0b01111100 ;
        CCP1CON = 0b00001100 ;
        CCP2CON = 0b00111100 ;

        for(;;)
                {

               for(pwm = 0 ; pwm ‹ 128 ; pwm++)
                        {
                        CCPR1L = pwm ;
                        CCPR2L = 128 - pwm ;
                        T2CON = 0b00000101 ;
                        Delay_ms(10) ;
                        }
                for(pwm = 127 ; pwm › 0 ; pwm--)
                        {
                        CCPR1L = pwm ;
                        CCPR2L = 128 - pwm ;
                        T2CON = 0b00000101 ;
                        Delay_ms(10) ;
                        }
                }
        }
Откомпилировал в демо версии mikroC , проверил в Протеусе у меня работает.
UserM вне форума  
Сказали "Спасибо" UserM
Denis147 (30.12.2009)
Непрочитано 29.12.2009, 23:50  
udar
Частый гость
 
Регистрация: 06.07.2006
Сообщений: 41
Сказал спасибо: 3
Сказали Спасибо 6 раз(а) в 4 сообщении(ях)
udar на пути к лучшему
По умолчанию Re: Proteus & PIC PWM

А случайно для PIC16F684 нет примерчика ШИМ?
udar вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Flowcode for PIC v4 sa502 Proteus, KiCAD и другие ECAD 867 12.02.2019 19:38
LPT b PROTEUS romshe Proteus 0 01.11.2009 18:22
Размещение констант в памяти программ в PIC ST_Senya Микроконтроллеры, АЦП, память и т.д 10 15.10.2009 20:12
[Решено] Проблема с eeprom в Proteus Memfis666 Proteus, KiCAD и другие ECAD 1 01.10.2009 15:38


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


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