Перейти к блогу GetChip.net - блог        JilTE[1] - в разработке     Модификации устройств - модификации

 
Текущее время: 28 мар 2024, 22:58

Часовой пояс: UTC + 3 часа [ Летнее время ]



Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу Пред.  1, 2, 3, 4
Автор Сообщение
 Заголовок сообщения: Re: Паяльная станция на ATtiny13
СообщениеДобавлено: 14 авг 2012, 18:44 
Не в сети

Зарегистрирован: 17 окт 2011, 20:16
Сообщения: 67
Вот текуший код:


// DEFINE________________________________________________

#define F_CPU 9600000UL

#define set(x) PORTB|=(1<<x)
#define clear(x) PORTB&=~(1<<x)

#define DATA PB2
#define CLK PB1

#define WDT_TIME WDTO_250MS


// INCLUDE________________________________________________

#include <avr/io.h>
#include <avr/wdt.h>
#include <util/delay.h>
#include <avr/interrupt.h>


// CONST__________________________________________________

// 0 1 2 3 4 5 6 7 8 9
const char symbol[10]={0x7e,0x50,0xec,0xf4,0xD2,0xB6,0xBE,0x70,0xff,0xF7};
const char segpos[4]={0x01,0x02,0x04,0x08};


// VARIABLES______________________________________________

volatile int sens_temp,adj_temp;
volatile char temp,count,segment[4]={0x00,0x00,0x00,0x00};


// FUNCTIONS______________________________________________

void converting(int num)
{
for(temp=0;temp<4;temp++) segment[temp]=0x00;

temp=0;
if(num<1000) segment[0]=symbol[0];
else
while(num>=1000)
{
num=num-1000;
temp++;
segment[0]=symbol[temp];
}

temp=0;
if(num<100) segment[1]=symbol[0];
else
while(num>=100)
{
num=num-100;
temp++;
segment[1]=symbol[temp];
}

temp=0;
if(num<10) segment[2]=symbol[0];
else
while(num>=10)
{
num=num-10;
temp++;
segment[2]=symbol[temp];
}

temp=0;
if(num<1) segment[3]=symbol[0];
else
while(num>=1)
{
num=num-1;
temp++;
segment[3]=symbol[temp];
}
}

void clk_data_set(void)
{
clear(CLK);
set(DATA);
set(CLK);
}

void clk_data_clear(void)
{
clear(CLK);
clear(DATA);
set(CLK);
}

void led_screen(void)
{
converting(sens_temp);

for (temp=0;temp<4;temp++)
{
for (count=0;count<8;count++)
{
if (segpos[temp]&_BV(count)) clk_data_set();
else
clk_data_clear();
}

for (count=0;count<8;count++)
{
if (segment[temp]&_BV(count)) clk_data_set();
else
clk_data_clear();
}

_delay_ms(8);
}
}


// INTERRUPTS_____________________________________________

ISR(ADC_vect)
{
wdt_reset();
if (ADMUX==0x03)
{
ADMUX=0x02;
adj_temp=ADCW;
}
else
{
ADMUX=0x03;
sens_temp=ADCW;
}


if (adj_temp>sens_temp)
{
OCR0A=0xff;
}
else
{
OCR0A=0x00;
}

led_screen();
ADCSRA|=_BV(ADSC);
}


// INIT FUNCTIONS_________________________________________

void pwm_init(void)
{
TCCR0A|=_BV(WGM00)|_BV(COM0A1);
TCCR0B|=_BV(CS00);
OCR0A=0x00;
}

void port_init(void)
{
DDRB=0xe7;
PORTB=0x00;
}

void adc_init(void)
{
ADMUX|=_BV(MUX1)|_BV(MUX0);
ADCSRA|=_BV(ADEN)|_BV(ADIE)|_BV(ADPS1)|_BV(ADPS2);
sei();
}


// MAIN___________________________________________________

int main(void)
{
//_delay_ms(1000);
//wdt_enable(WDT_TIME);
port_init();
pwm_init();
adc_init();

ADCSRA|=_BV(ADSC);

while(1)
{


}
}



:zomg: :zomg: :zomg: :zomg: :zomg: :zomg: :zomg: :zomg:


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Паяльная станция на ATtiny13
СообщениеДобавлено: 27 окт 2012, 19:42 
В функции инициализации ШИМ ошибка TCCR0B|=_BV(CS00); шим работает на неподемной частоте для irfz44 9,6 Мгц :(

TCCR0B|=_BV(CS02); будет лучше 37500 Гц но даже это слишком много. Причина в том что затвор транзистора подключен напрямую к мк и на такой частоте недозаряжает затвор транзистора до полного открыти !

ТАК ЧТО СХЕМА ВКЛЮЧЕНИЯ ПОЛЕВОГО ТРАНЗИСТОРА ИЗ http://www.getchip.net/posts/062-kak-po ... -nagruzku/ СПРАВЕДЛИВА ПРИ ИСПОЛЬЗОВАНИИ В КАЧЕСТВЕ РЕЛЕ И НЕПРИГОДА ДЛЯ ШИМ :(

вот тут поясняется кaкраз на премере irfz44 http://cxem.net/beginner/beginner65.php

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Паяльная станция на ATtiny13
СообщениеДобавлено: 19 июл 2013, 15:31 
http://radio.aliot.com.ua/?p=409


Вернуться к началу
  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу Пред.  1, 2, 3, 4

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB