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

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

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

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

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

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

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

Закрытая тема
Опции темы
Непрочитано 12.03.2011, 20:21   #11
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Что делаю не правильно?

На будущее - чтоб комменты остались русскими копируйте в буфер обмена при включенной русской раскладке. Вставляйте тоже включив русскую.
А по тексту - на первый взгляд напоминает бред. Что получить то хотите? И что работает не так, как задумывалось?
Реклама:
kison вне форума  
Сказали "Спасибо" kison
neid_nnov (15.03.2011)
Непрочитано 12.03.2011, 20:23   #12
neid_nnov
Временная регистрация
 
Регистрация: 05.10.2010
Сообщений: 68
Сказал спасибо: 12
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
neid_nnov на пути к лучшему
По умолчанию Re: Что делаю не правильно?

кротоВ, был бы признателен...
neid_nnov вне форума  
Непрочитано 12.03.2011, 20:26   #13
neid_nnov
Временная регистрация
 
Регистрация: 05.10.2010
Сообщений: 68
Сказал спасибо: 12
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
neid_nnov на пути к лучшему
По умолчанию Re: Что делаю не правильно?

Управлять светодиодом белый в бумажной лампе Икеа, 3 режима работы с помощью трех кнопок: + яркость, - яркость, и смена режимов. Первый режим: просто в ручную меняем яркость диода, второй: неприрывно сам плавно гаснет и разгорается снова, третий: режим просто Ярко горит постоянно. Режимы меняются поочередно нажимая на кнопку 3, и так по кругу 1-2-3, 1-2-3.
работает, ШИМ выставлет на минимум в Протусе и на кнопки нет реакции.
neid_nnov вне форума  
Непрочитано 12.03.2011, 20:31   #14
кротоВ
Заблокирован
 
Регистрация: 06.11.2010
Сообщений: 267
Сказал спасибо: 13
Сказали Спасибо 108 раз(а) в 65 сообщении(ях)
кротоВ на пути к лучшему
По умолчанию Re: Что делаю не правильно?

Цитата:
static void mode1(void){
u8 key;
while(1) {
key = get_key();
switch(key){
case KEY_UP: if(OCR2 ‹ 255) OCR2++;
break;
case KEY_DN: if(OCR2›0) OCR2--;
break;
case KEY_NEXT:
return;
}
}
}
У вас нет возможности выхода программы из цикла...вот она и виснет...
кротоВ вне форума  
Сказали "Спасибо" кротоВ
neid_nnov (12.03.2011)
Непрочитано 12.03.2011, 20:37   #15
neid_nnov
Временная регистрация
 
Регистрация: 05.10.2010
Сообщений: 68
Сказал спасибо: 12
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
neid_nnov на пути к лучшему
По умолчанию Re: Что делаю не правильно?

если виснет в первой функции то должно хотябы прибывляться и уменьшаться от кнопок?
neid_nnov вне форума  
Непрочитано 12.03.2011, 20:42   #16
кротоВ
Заблокирован
 
Регистрация: 06.11.2010
Сообщений: 267
Сказал спасибо: 13
Сказали Спасибо 108 раз(а) в 65 сообщении(ях)
кротоВ на пути к лучшему
По умолчанию Re: Что делаю не правильно?

Попробуйте вначале убедится, что ваши кнопки работают... в другой программе попроще, просто перенаправляя входа на выходы МК.
Когда будете уверенны, тогда используйте те же настройки в вашей программе... ну и ещё раз о протеусе - не надо ему верить...
ЗЫ..Возможно так же вывести на свободные пины (светодиоды) переменную key...И понаблюдать изменяется ли она...

Последний раз редактировалось кротоВ; 12.03.2011 в 20:46.
кротоВ вне форума  
Непрочитано 12.03.2011, 21:13   #17
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Что делаю не правильно?

Выход из цикла есть - return
Начните с конфигурации PB3 на выход. DDRB = (1‹‹3);
kison вне форума  
Непрочитано 13.03.2011, 11:52   #18
neid_nnov
Временная регистрация
 
Регистрация: 05.10.2010
Сообщений: 68
Сказал спасибо: 12
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
neid_nnov на пути к лучшему
По умолчанию Re: Что делаю не правильно?

Сообщение от kison Посмотреть сообщение
с конфигурации PB3 на выход. DDRB = (1‹‹3);
так он вроде на выходе и был сделан!

вообщем проверил кнопки на конфигурацию.
Код:
#include ‹mega8.h›
#include ‹delay.h›
// Timer2 overflow interrupt service routine
interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{
// Place your code here

}

// Declare your global variables here

void main(void)
{


// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=In Func1=In Func0=In 
// State7=T State6=T State5=T State4=T State3=0 State2=T State1=T State0=T 
PORTB=0x00;
DDRB=0x08;

// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
// State6=T State5=T State4=T State3=T State2=P State1=P State0=P 
PORTC=0x07;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
PORTD=0x00;
DDRD=0x00;


// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: 125,000 kHz
// Mode: Fast PWM top=FFh
// OC2 output: Non-Inverted PWM
ASSR=0x00;
TCCR2=0x69;
TCNT2=0x00;
OCR2=0x00;

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

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

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// Global enable interrupts
#asm("sei")

while (1)
      {
  // Place your code here
  if((PINC.0==0)&(OCR2!=0xff)) // увеличивать пока не достигло максиума
  {
  delay_ms(10); // задержка 10 мс.
  OCR2+=1; //увеличиваем заполнение
  }
  if((PINC.1==0)&(OCR2!=0x00)) // уменьшать пока не достигло миниума
  {
  delay_ms(10); // задержка 10 мс.
  OCR2-=1; //уменьшаем заполнение
  };
  if (PINC.2==0) break;
      
      };
}
вот картинка из протуса, в железе пока не могу сделать...

хочу обратить внимание как вход на кнопки я делаю:http://my-avr.at.ua/publ/1-1-0-23 учился по вот этой статьйки.
neid_nnov вне форума  
Непрочитано 13.03.2011, 14:30   #19
neid_nnov
Временная регистрация
 
Регистрация: 05.10.2010
Сообщений: 68
Сказал спасибо: 12
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
neid_nnov на пути к лучшему
По умолчанию Re: Что делаю неправильно?

вообщем вот все это минимизирола для провеки кнопок на своих функциях со светодиодами подключенными к PORTD.0 и PORTD.1 и опять ничего не выходит(((( свети не зажигаются по нажатию кнопок
Код:
#include ‹mega8.h›
#include ‹delay.h›

#define KEY_UP 1
#define KEY_DN 2
#define KEY_NEXT 3
#define KEY_NONE 0

typedef unsigned char u8;

// функция, которая опрашивает кнопки и возвращает код нажатой
u8 get_key(void){
   u8 temp = ~(PINC & (KEY_UP | KEY_DN | KEY_NEXT));
   delay_ms(15);
   if(temp != (~(PINC & (KEY_UP | KEY_DN | KEY_NEXT))))
      return KEY_NONE;
   else
      return temp;
}

static void mode1(void){
   u8 key;
   while(1){
      key = get_key();
      switch(key){
      case KEY_UP: PORTD.0=1;
      delay_ms(500);
      break;
      case KEY_DN: PORTD.1=1;
      delay_ms(500);
               break;
      case KEY_NEXT:
         return;
      }
   }
}

void main(void)
{

PORTC=0xff;
DDRC=0x00;

State0=T 
PORTD=0x00;
DDRD=0xFF;

while (1)
      {
mode1();
        };
}
neid_nnov вне форума  
Непрочитано 13.03.2011, 19:27   #20
oleg_harp
Прописка
 
Регистрация: 25.08.2007
Сообщений: 193
Сказал спасибо: 11
Сказали Спасибо 57 раз(а) в 33 сообщении(ях)
oleg_harp на пути к лучшему
По умолчанию Re: Что делаю неправильно?

В первом сообщении
Сообщение от neid_nnov Посмотреть сообщение
PORTC=0x07;
Неправильно. Должно быть PORTC=0x16;
Сообщение от oleg_harp Посмотреть сообщение
u8 temp = ~(PINC & (KEY_UP | KEY_DN | KEY_NEXT));
Неправильно! И т.д. Что неправильно объяснять некогда, убегаю. А, вообще то, лучше выкладывать проект в Proteus, а то так долго можно ковыряться! Сами в Proteus по коду пошагово пройдите и увидите где косяк.

Последний раз редактировалось oleg_harp; 13.03.2011 в 20:41.
oleg_harp вне форума  
Закрытая тема

Закладки

Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
Глушилка громкой музыки у соседей VVK Отвлекитесь, эмбеддеры! 355 10.01.2019 20:09
KiCAD-объявления и впечатления al_dan KiCAD 32 03.10.2016 17:02
Варианты использования свободной энергии. Кто что знает? Msergey4 Электроника - это просто 416 02.12.2013 12:09


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


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