Четверг, 28.03.2024, 15:25
Микроконтроллерная техника AVR
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Форум » Микроконтроллеры » Вопросы по МК » генератор на меге8515
генератор на меге8515
HiSERДата: Понедельник, 11.07.2011, 22:36 | Сообщение # 16
Продвинутый автор!
Группа: Проверенные
Сообщений: 254
Репутация: 11
Статус: Offline
http://disk.tom.ru/nxk77qz
 
ShakalДата: Вторник, 12.07.2011, 14:26 | Сообщение # 17
Рядовой
Группа: Пользователи
Сообщений: 16
Репутация: 0
Статус: Offline
HiSER, спасибо) только можно еще помощь.. что именно нужно добавить в код чтоб 3-ей кнопкой менялось скважность хотяб 2 значения ? огромное спасибо
 
HiSERДата: Среда, 13.07.2011, 10:39 | Сообщение # 18
Продвинутый автор!
Группа: Проверенные
Сообщений: 254
Репутация: 11
Статус: Offline
Надо счетчик ставить в режим PWM top = ICR, но тогда со сменой частоты будет меняться и разрядность ШИМ'а.
 
ShakalДата: Четверг, 14.07.2011, 16:05 | Сообщение # 19
Рядовой
Группа: Пользователи
Сообщений: 16
Репутация: 0
Статус: Offline
HiSER, а как сделать чтобы минимальная частота была 1 герц? (нужно чтобы она за 1 уменьшалось так?)
 
HiSERДата: Четверг, 14.07.2011, 19:22 | Сообщение # 20
Продвинутый автор!
Группа: Проверенные
Сообщений: 254
Репутация: 11
Статус: Offline
нужно еще тогда и делителем счетчика управлять.
 
ShakalДата: Понедельник, 18.07.2011, 17:29 | Сообщение # 21
Рядовой
Группа: Пользователи
Сообщений: 16
Репутация: 0
Статус: Offline
HiSER, а как делитель в коде называеться?

Добавлено (18.07.2011, 12:13)
---------------------------------------------
HiSER, и еще как сделать кнопки + и - чтобы от динамической индикации опрос происходил для экономии портов ???

Добавлено (18.07.2011, 17:29)
---------------------------------------------
блин не получаеться чтоб индикация работала вот для такой схемы!!!!!

http://disk.tom.ru/ypddvv2

 
HiSERДата: Вторник, 19.07.2011, 18:57 | Сообщение # 22
Продвинутый автор!
Группа: Проверенные
Сообщений: 254
Репутация: 11
Статус: Offline
Вместо R1, R2 должны быть диоды, анодом к кнопкам.
PD7 подтянуть резистором на ~10k к VCC.
Проверяешь уровень на PIND.7 в зависимости от отображаемого разряда и будет проверяемая кнопка.
A-G, DP должны быть подключены через резисторы.

PS. И в чем смысл экономии пинов, если их при достаточно?


Сообщение отредактировал HiSER - Вторник, 19.07.2011, 18:57
 
ShakalДата: Вторник, 19.07.2011, 20:49 | Сообщение # 23
Рядовой
Группа: Пользователи
Сообщений: 16
Репутация: 0
Статус: Offline
HiSER, это у меня получилось у меня не почучаеться индикация когда использються транзисторы , схему я выкинул перед этим

Добавлено (19.07.2011, 20:49)
---------------------------------------------
HiSER, согласен) просто требования такие и бешеный чувак практики (

 
HiSERДата: Среда, 20.07.2011, 11:38 | Сообщение # 24
Продвинутый автор!
Группа: Проверенные
Сообщений: 254
Репутация: 11
Статус: Offline
за комментируй LCD_CATHODE
 
ShakalДата: Среда, 20.07.2011, 16:39 | Сообщение # 25
Рядовой
Группа: Пользователи
Сообщений: 16
Репутация: 0
Статус: Offline
HiSER, что то не помогла sad
 
HiSERДата: Среда, 20.07.2011, 17:20 | Сообщение # 26
Продвинутый автор!
Группа: Проверенные
Сообщений: 254
Репутация: 11
Статус: Offline
Посмотри в коде, инверсия на катоды должна быть
 
ShakalДата: Среда, 20.07.2011, 18:19 | Сообщение # 27
Рядовой
Группа: Пользователи
Сообщений: 16
Репутация: 0
Статус: Offline
HiSER, блин что то я убираю ее а смысла нету( у тебя остался же этот код .. можешь посмотреть очень буду благодарен ..
 
HiSERДата: Среда, 20.07.2011, 21:12 | Сообщение # 28
Продвинутый автор!
Группа: Проверенные
Сообщений: 254
Репутация: 11
Статус: Offline
Code

interrupt [TIM0_OVF] void tmr0_ovf() {
PORTC&=0xc0;
PORTA=~led_buff[led_dig];
PORTC|=1<<led_dig;
led_dig++;
if (led_dig>5) led_dig=0;
}
 
ShakalДата: Среда, 20.07.2011, 22:31 | Сообщение # 29
Рядовой
Группа: Пользователи
Сообщений: 16
Репутация: 0
Статус: Offline
логически вроде все правильно и какраз бегает 1 которая должна открывать транзисторы но нифига они не открываються ....

я уже наверное заколупал ....так вот нужно было схему собирать http://disk.tom.ru/3yh76q4 всеровно одни 8-ки

Code
#include <mega8515.h>
#include <delay.h>
//#define LED_CATODE

typedef unsigned char byte;
typedef unsigned int word;
typedef unsigned long dword;
typedef union {
struct {
byte low;
byte high;
}b;
word val;
}twb;

flash byte led_table[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};

byte led_dig=0;
twb pos;
byte led_buff[6];
       
interrupt [TIM0_OVF] void tmr0_ovf() {  
  PORTC&=0xc0;  
  PORTA=~led_buff[led_dig];  
  PORTC|=1<<led_dig;  
  led_dig++;  
  if (led_dig>5) led_dig=0;  
  }  
    
   /*

interrupt [TIM0_OVF] void tmr0_ovf() {
#ifdef   LED_CATODE
PORTC|=0x3f;
PORTA=~led_buff[led_dig];
PORTC&=~(1<<led_dig);
#else
PORTC&=0xc0;
PORTA=~led_buff[led_dig];
PORTC|=1<<led_dig;

#endif
led_dig++;
if (led_dig>5) led_dig=0;

}
      */
       
void led_freq() {
dword t;
byte i;
i=6;
t=pos.val;
t=8000000/(t+1)/2;
do {
i--;
if (t>0) {
led_buff[i]=led_table[t%10];
t=t/10;
}else{
led_buff[i]=led_table[10];
}
} while(i!=0);
}

void main(void) {
PORTA=0x00;
DDRA=0xff;
PORTC=0x3f;
DDRC=0x3f;
PORTB=0;
DDRB=0;
PORTD=0x00;
DDRD=0x7F;

TCCR0=3;
TCNT0=0;

TCNT1H=0;
TCNT1L=0;
ICR1H=0;
ICR1L=255;
TCCR1A=0x40;
TCCR1B=0x19;

TIMSK=2;

ACSR=0x80;

#asm("sei")

pos.val=255;

while(1) {

if (PIND.7!=0 && PINC.0==0) {
if (pos.val<1023) pos.val++;
}
if (PIND.7!=0 && PINC.1==0) {
if (pos.val>1) pos.val--;
}
ICR1H=pos.b.high;
ICR1L=pos.b.low;

led_freq();

delay_ms(50);
}

}
sad


Сообщение отредактировал Shakal - Среда, 20.07.2011, 22:42
 
HiSERДата: Четверг, 21.07.2011, 12:51 | Сообщение # 30
Продвинутый автор!
Группа: Проверенные
Сообщений: 254
Репутация: 11
Статус: Offline
http://disk.tom.ru/41rrzgu
 
Форум » Микроконтроллеры » Вопросы по МК » генератор на меге8515
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

Хостинг от uCoz