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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 23.01.2011, 18:11  
7Fantomas7
Почётный гражданин KAZUS.RU
 
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
7Fantomas7 на пути к лучшему
По умолчанию С код помогите решить проблему

Всем доброе время.
Вобшем проблема такая
Есть код
#include ‹mega8535.h›
#include ‹delay.h›
extern unsigned char zadanie_I; //переменная задание для источника тока
extern unsigned char zadanie_U; //переменная задание для источника напряжения

void start_310 (void){//функция первичного включения инвертора когда подано напряжение вообще
delay_ms (20); //Ждем 2 секунды пока заряжаются через резистор силовые конденсяторы
PORTB.0=1; //Включаем оптотиристор шунтирующий резистор
if (zadanie_I==0){ //если задание тока равно 0
zadanie_I=1; //записываем минимальное значение задания тока
//zadanie_I_eep=zadanie_I;
}
if (zadanie_U==0){ //если задание напряжения равно 0
zadanie_U=1; //записываем минимальное значение задания напряжения
//zadanie_U_eep=zadanie_U;
}
delay_ms (5); //Ждем 0,5 секунды
TCCR2=0x6E; //Запускаем таймер 2 со всеми настройками ШИМа
}

В порт пишем единицу PORTB.0=1, а на пине импульсы. В протеусе симулируется вроде нормально. Какая может быть причина? В delay стоит не то что в коментарии умышлено. Функция используется 1 раз в main перед while (1) только при подаче питания на контролер.
Реклама:

Последний раз редактировалось 7Fantomas7; 23.01.2011 в 18:17.
7Fantomas7 вне форума  
Сказали "Спасибо" 7Fantomas7
warel (27.06.2019)
Непрочитано 23.01.2011, 19:32  
Nfc
Прописка
 
Регистрация: 11.10.2008
Сообщений: 132
Сказал спасибо: 8
Сказали Спасибо 35 раз(а) в 30 сообщении(ях)
Nfc на пути к лучшему
По умолчанию Re: С код помогите решить проблему

Хм,.. 1 сек = 1000 мС.
Nfc вне форума  
Сказали "Спасибо" Nfc
warel (27.06.2019)
Непрочитано 23.01.2011, 19:44  
Saadov
Почётный гражданин KAZUS.RU
 
Аватар для Saadov
 
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,018
Сказал спасибо: 348
Сказали Спасибо 1,024 раз(а) в 552 сообщении(ях)
Saadov на пути к лучшему
По умолчанию Re: С код помогите решить проблему

PHP код:
delay_ms (20); 
пауза 20 мс, 2 сек = 2000 мс
PHP код:
delay_ms (5); 
5 мс, 0.5 сек = 500 мс
Saadov вне форума  
Сказали "Спасибо" Saadov
warel (27.06.2019)
Непрочитано 23.01.2011, 20:09  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: С код помогите решить проблему

Сообщение от 7Fantomas7 Посмотреть сообщение
Всем доброе время.
Вобшем проблема такая
Есть код
Код:
#include ‹mega8535.h›
#include ‹delay.h›
extern unsigned char zadanie_I; //переменная задание для источника тока
extern unsigned char zadanie_U; //переменная задание для источника напряжения 

void start_310 (void){//функция первичного включения инвертора когда подано напряжение вообще
 delay_ms (20);      //Ждем 2 секунды пока заряжаются через резистор силовые конденсяторы
 PORTB.0=1;            //Включаем оптотиристор шунтирующий резистор
  if (zadanie_I==0){    //если задание тока равно 0     
  zadanie_I=1;          //записываем минимальное значение задания тока
  //zadanie_I_eep=zadanie_I;
  }
  if (zadanie_U==0){    //если задание напряжения равно 0
  zadanie_U=1;          //записываем минимальное значение задания напряжения
  //zadanie_U_eep=zadanie_U;
  }
 delay_ms (5);       //Ждем 0,5 секунды
 TCCR2=0x6E;         //Запускаем таймер 2 со всеми настройками ШИМа         
 }
В порт пишем единицу PORTB.0=1, а на пине импульсы. В протеусе симулируется вроде нормально. Какая может быть причина? В delay стоит не то что в коментарии умышлено. Функция используется 1 раз в main перед while (1) только при подаче питания на контролер.
Проверить включение вотчдога. И выключить. Первое, что пришло в голову. По тексту анси си претензий нет. А вот что происходит вне приведенного модуля - тут не конкурс прорицателей.
Разве что задержка коротковата, 5 мсек. Судя по каментам, вам подлиннее хотелось? И еще, для облечения понимания наваянного вами, ради Бога, применяйте тэг CODE, он и создан для удобства чтения кодов людьми. Хорошо еще, у вас нет вложенных условий-циклов. Я ввел на вашу цитату - красиво?

Последний раз редактировалось ut1wpr; 23.01.2011 в 20:15.
ut1wpr вне форума  
Эти 2 пользователя(ей) сказали Спасибо ut1wpr за это сообщение:
7Fantomas7 (23.01.2011), warel (27.06.2019)
Непрочитано 23.01.2011, 21:56  
7Fantomas7
Почётный гражданин KAZUS.RU
 
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
7Fantomas7 на пути к лучшему
По умолчанию Re: С код помогите решить проблему

Nfc Saadov ДЛЯ ВАС СПЕЦИАЛЬНО НАПИСАЛ
Цитата:
В delay стоит не то что в коментарии умышлено.
Да и какое это имеет отношение к вопросу.
ut1wpr,
Цитата:
Разве что задержка коротковата, 5 мсек. Судя по каментам, вам подлиннее хотелось?
Просто в протеус задержки в секундах будут симулироваться до нового года. Я потом исправлю.
Цитата:
Я ввел на вашу цитату - красиво?
Я просто не знаю как с полосами прокрутки делать, к своему стыду.
Цитата:
А вот что происходит вне приведенного модуля - тут не конкурс прорицателей.
Да вы правы, вне приведенного модуля все выглядит так
Код:
/**************************************************  ***
This program was produced by the
CodeWizardAVR V2.04.4a Advanced
Automatic Program Generator
© Copyright 1998-2009 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project : 
Version : 
Date    : 03.10.2010
Author  : NeVaDa
Company : Microsoft
Comments: 


Chip type               : ATmega8535L
Program type            : Application
AVR Core Clock frequency: 16,000000 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 128
**************************************************  ***/

#include ‹mega8535.h›
#include ‹delay.h›
#include "start_310.h"
#include "peremenie_konst.h"



void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out 
// State7=T State6=T State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 
PORTA=0x00;
DDRA=0x3F;

// Port B initialization
// Func7=Out Func6=Out Func5=Out Func4=In Func3=Out Func2=In Func1=Out Func0=Out 
// State7=0 State6=0 State5=0 State4=P State3=0 State2=P State1=0 State0=0 
PORTB=0x14;
DDRB=0xEB;

// Port C initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out 
// State7=1 State6=1 State5=1 State4=1 State3=1 State2=1 State1=1 State0=1 
PORTC=0xFF;
DDRC=0xFF;

// Port D initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=In 
// State7=0 State6=1 State5=1 State4=1 State3=P State2=P State1=P State0=P 
PORTD=0x7F;
DDRD=0xF0;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x40;

// Analog Comparator initialization
// Analog Comparator: On
// The Analog Comparator's positive input is
// connected to the Bandgap Voltage Reference
// Interrupt on Falling Output Edge
// Analog Comparator Input Capture by Timer/Counter 1: Off
//ACSR=0x4A;
ACSR=0x00;
SFIOR=0x00;

/*** ADC initialization
// ADC Clock frequency: 1000,000 kHz
// ADC Voltage Reference: AREF pin
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: Free Running
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0xA4;
SFIOR&=0x0F;
***/

// Global enable interrupts
#asm("sei")
/**************************************************  **************************************************  ***************/
start_310();
while (1){

}
}
PS а как вертикальную прокрутку сделать.
Собачий таймер пробовал и так и так.

Последний раз редактировалось 7Fantomas7; 23.01.2011 в 22:24.
7Fantomas7 вне форума  
Сказали "Спасибо" 7Fantomas7
warel (27.06.2019)
Непрочитано 24.01.2011, 00:02  
Saadov
Почётный гражданин KAZUS.RU
 
Аватар для Saadov
 
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,018
Сказал спасибо: 348
Сказали Спасибо 1,024 раз(а) в 552 сообщении(ях)
Saadov на пути к лучшему
По умолчанию Re: С код помогите решить проблему

По питанию есть конденсаторы? Питание не шумное? Ресет подтянут? Конденсатор от ресета на землю есть?
Saadov вне форума  
Сказали "Спасибо" Saadov
warel (27.06.2019)
Непрочитано 24.01.2011, 00:24  
MasterMushi
Вид на жительство
 
Регистрация: 14.10.2009
Сообщений: 338
Сказал спасибо: 35
Сказали Спасибо 92 раз(а) в 73 сообщении(ях)
MasterMushi на пути к лучшему
По умолчанию Re: С код помогите решить проблему

Кондеры на кварце какого номинала? Кварц высокий или низкопрофильный? Если низкий то надо кондеры уменьшить до 12-15 пикух чтобы кварц работал на своей первой гармонике.
__________________
Найди путь или проложи сам!
MasterMushi вне форума  
Сказали "Спасибо" MasterMushi
warel (27.06.2019)
Непрочитано 24.01.2011, 00:31  
7Fantomas7
Почётный гражданин KAZUS.RU
 
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
7Fantomas7 на пути к лучшему
По умолчанию Re: С код помогите решить проблему

Цитата:
По питанию есть конденсаторы?
По питанию установлено 4 шт по 0,1 мкф вокруг процесора с удалением от ног до 5мм и один конденсатор 1500 мкф.
Цитата:
Питание не шумное?
До 160 миливольт на ногах.
Цитата:
Ресет подтянут?
Подтянут 12кОм к плюсу и 0,1мкф на землю пульсация таже.
Вообще пульсация это шум щупа или по земле чего гуляет. Землю осцилографа вешаю на землю схемы и туда же щуп и тоже вижу пульсацию. Безпорядочный шум.
Цитата:
Кондеры на кварце какого номинала?
22 пика
Кварц высотой милиметров 5, вобшем судя по всему низкопрофильный.
Я не думаю что из за кварца потому как частота импульсов на пине стабильна 34,13кГц, ширина стабильна. Если бы был хаотический reset или шум колбасил не было бы стабильной частоты импульсов на пине.

Последний раз редактировалось 7Fantomas7; 24.01.2011 в 00:51.
7Fantomas7 вне форума  
Сказали "Спасибо" 7Fantomas7
warel (27.06.2019)
Непрочитано 24.01.2011, 00:47  
7Fantomas7
Почётный гражданин KAZUS.RU
 
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
7Fantomas7 на пути к лучшему
По умолчанию Re: С код помогите решить проблему

Во вложении проект. Написан в CVAVR 2.05 схема в Протеусе, симуляция настроена. Симулировал в AVRStudio все нормально садится на пин единица все вроде нормально, с симуляцией в протеусе какието глюки, я задал вопрос в другой теме.
Вложения:
Тип файла: zip Simulation.zip (178.1 Кб, 71 просмотров)

Последний раз редактировалось 7Fantomas7; 24.01.2011 в 00:50.
7Fantomas7 вне форума  
Сказали "Спасибо" 7Fantomas7
warel (27.06.2019)
Непрочитано 24.01.2011, 00:51  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: С код помогите решить проблему

Может контакты на осциллографе окислились/поизносились? Поотключайте разъёмы.
omercury вне форума  
Сказали "Спасибо" omercury
warel (27.06.2019)
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить проблему по лампе резерва топлива _shurik_74 Электроника средств транспорта 33 13.10.2010 21:53
Помогите решить глюк с клавиатурой os1n Микроконтроллеры, АЦП, память и т.д 27 01.06.2010 02:34
Помогите решить проблему с IR2153 gansior Источники питания и свет 7 26.05.2010 21:43
Помогите решить проблему с DHS1011 pwa123 Информация по радиокомпонентам 2 02.03.2010 06:34
Помогите решить вопрос! Thychogeosedy Информация по радиокомпонентам 2 28.02.2010 16:15


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


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