Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

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

 
Опции темы

Счетчик-таймер на ATtiny

Непрочитано 22.08.2011, 15:37  
Dimitrij
Временная регистрация
 
Регистрация: 26.02.2005
Сообщений: 78
Сказал спасибо: 15
Сказали Спасибо 16 раз(а) в 16 сообщении(ях)
Dimitrij на пути к лучшему
По умолчанию Re: Счетчик-таймер на ATtiny

Сообщение от BolshoyK Посмотреть сообщение
лучше разобраться детально в своей проге
Программирование только начал осваивать, поэтому половину еще не понимаю.
Сообщение от BolshoyK Посмотреть сообщение
Тестировал на том, что привел в примере - 5 секунд.
В частности, почему программа нормально работает только со значением 5 секунд, а с другими нет. Ставлю 0 секунд - повторно не запускается, 60 минут - при пуске сразу высвечивает 60.00 и не считает? P.S. Только сейчас проверил, и со значением 5 секунд досчитывает до 5 секунд и останавливается. Видно, выполняется заданное условие и счет останавливается.
Сообщение от BolshoyK Посмотреть сообщение
В CVAVR Есть визард
Брал оттуда установки TIMER0, TIMER1 выставлял, как в исходнике, кусок #pragma optsize- выбросил, программа не запускается.


Сообщение от artyomugr Посмотреть сообщение
Если проблему не решишь сам, могу помочь.
Посмотрю, если не получится-обращусь.
Сообщение от artyomugr Посмотреть сообщение
переменная инкриментируется или декрементируется
Это для меня "темный лес"!
Реклама:

Последний раз редактировалось Dimitrij; 22.08.2011 в 17:47.
Dimitrij вне форума  
Непрочитано 22.08.2011, 15:56  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: Счетчик-таймер на ATtiny

Сообщение от Dimitrij Посмотреть сообщение
переменная инкриментируется или декрементируется
Это для меня "темный лес"!
другими словами:
переменную
либо вычитаешь на еденицу каждый раз либо прибавляешь к ней еденицу каждый раз.
artyomugr вне форума  
Непрочитано 22.08.2011, 17:55  
Dimitrij
Временная регистрация
 
Регистрация: 26.02.2005
Сообщений: 78
Сказал спасибо: 15
Сказали Спасибо 16 раз(а) в 16 сообщении(ях)
Dimitrij на пути к лучшему
По умолчанию Re: Счетчик-таймер на ATtiny

Сообщение от heady69 Посмотреть сообщение
Код таймера из одной "поделки"
Код понятен, но как его прикрутить к программе? Видно, поставил я себе непосильную задачу.
Попробую еще с кодом от artyomugr.
Dimitrij вне форума  
Непрочитано 23.08.2011, 09:35  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: Счетчик-таймер на ATtiny

Попробуй разобраться в моем коде, немного подправишь алгоритм под свои нужды и порядок! Зато мой код не затыкается не стого не с сего, а работает отлично.
В коде можешь вытереть приветствие, обьем кода сразу снизится.

Код:
/**************************************************  ***
This program was produced by the
CodeWizardAVR V1.25.8 Standard
Automatic Program Generator
© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project : 
Version : 
Date    : 27.06.2011
Author  : F4CG                            
Company : F4CG                            
Comments: 


Chip type           : ATtiny2313
Clock frequency     : 8,000000 MHz
Memory model        : Tiny
External SRAM size  : 0
Data Stack size     : 32
**************************************************  ***/

#include ‹tiny2313.h›
#include ‹delay.h›
#define start PINA.1
#define select PINA.0
#define load_active {PORTD.3=PORTD.5=1; PORTD.4=PORTD.6=0;}
#define load_clr  {PORTD.3=PORTD.5=0; PORTD.4=PORTD.6=1;}
#define byte1 PIND.5
#define delay_table 120

unsigned char t=0; 

unsigned int temp,temp1=0;

bit flags_button=0;
bit flags=0;
bit flags_off_button=0;

typedef unsigned char byte;

byte timer_select=0;
byte temp_select=0;
byte sek=0;
byte timer=0;                                
    
byte timer_off_button=0; 

//byte flags=0;
byte led_buff [3];
 /*
flash byte led_table[17]={   // anode
0b00000011,                   //0
0b10011111,                   //1
0b00100101,                   //2
0b00001101,                   //3
0b10011001,                   //4
0b01001001,                   //5
0b01000001,                   //6
0b00011111,                   //7
0b00000001,                   //8
0b00001001,                   //9
0b11111101,                   //знак минуса
0b11111111,                   //пустота
0b11100011,                   // L
0b11100001,                   // t
0b01110001,                   // F
0b11110101,                   // r
0b01100001                    // E
} ;   */

flash byte led_table[18]={     // chatode
0b11111100,                   //0
0b01100000,                   //1
0b11011010,                   //2
0b11110010,                   //3
0b01100110,                   //4
0b10110110,                   //5
0b10111110,                   //6
0b11100000,                   //7
0b11111110,                   //8
0b11110110,                   //9
0b00000010,                   //знак минуса
0b00000000,                   //пустота
0b00011100,                   // L
0b00011110,                   // t
0b10001110,                   // F
0b00001010,                   // r
0b10011110,                   // E
0b01101110                    // H
} ;


// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Reinitialize Timer 0 value
TCNT0=0x9F; // 105
// Place your code here
PORTD.0=1;
PORTD.1=1;
PORTD.2=1;
switch (t)
{
case 0:
PORTD.2=0;

PORTB = led_buff [0];
break;

case 1:
PORTD.1=0;

PORTB = led_buff [1];
break; 

case 2:
PORTD.0=0;

PORTB = led_buff [2];
break;
}
 t++;
if (t›2) t=0;
}

// Declare your global variables here

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

// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

// Input/Output Ports initialization
// Port A initialization
// Func2=Out Func1=In Func0=In 
// State2=0 State1=P State0=P 
PORTA=0x03;
DDRA=0x04;

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

// Port D initialization
// Func6=Out Func5=In Func4=In Func3=In Func2=Out Func1=Out Func0=Out 
// State6=0 State5=P State4=P State3=P State2=0 State1=0 State0=0 
PORTD=0b1010000;
DDRD=0b1111111;



// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 7,813 kHz
// Mode: Normal top=FFh
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x00;
TCCR0B=0x04;  
TCNT0=0x9F;  // сейчас 159 в десятичной системе // было 0х68
OCR0A=0x00;
OCR0B=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 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;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// Interrupt on any change on pins PCINT0-7: Off
GIMSK=0x00;
MCUCR=0x00;

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

// Universal Serial Interface initialization
// Mode: Disabled
// Clock source: Register & Counter=no clk.
// USI Counter Overflow Interrupt: Off
USICR=0x00;

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

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

/////////////////////////////////////////////////////////////////
// если не нужно приветствие при старте вытри этот участок
 
        led_buff[0]=led_table[11]; // индикация HELLO
        led_buff[1]=led_table[11];
        led_buff[2]=led_table[11];
     
        delay_ms(delay_table);
        led_buff[0]=led_table[11]; //Заполняем буфер разрядов
        led_buff[1]=led_table[11]; // индикация HELLO
        led_buff[2]=led_table[17];
    
        delay_ms(delay_table);
        led_buff[0]=led_table[11]; //Заполняем буфер разрядов
        led_buff[1]=led_table[17]; // индикация HELLO
        led_buff[2]=led_table[1];
      
         delay_ms(delay_table);
        led_buff[0]=led_table[17]; //Заполняем буфер разрядов
        led_buff[1]=led_table[1]; // индикация HELLO
        led_buff[2]=led_table[11];
  
   
         delay_ms(1000);
         
        led_buff[0]=led_table[11]; //Заполняем буфер разрядов
        led_buff[1]=led_table[11]; // индикация HELLO
        led_buff[2]=led_table[11];
        
        delay_ms(500);
        led_buff[0]=led_table[17]; //Заполняем буфер разрядов
        led_buff[1]=led_table[1]; // индикация HELLO
        led_buff[2]=led_table[11];
        
        delay_ms(500);
         
        led_buff[0]=led_table[11]; //Заполняем буфер разрядов
        led_buff[1]=led_table[11]; // индикация HELLO
        led_buff[2]=led_table[11];
        
         delay_ms(500);
        led_buff[0]=led_table[17]; //Заполняем буфер разрядов
        led_buff[1]=led_table[1]; // индикация HELLO
        led_buff[2]=led_table[11];
        
         delay_ms(500);
         
        led_buff[0]=led_table[11]; //Заполняем буфер разрядов
        led_buff[1]=led_table[11]; // индикация HELLO
        led_buff[2]=led_table[11];
        
         delay_ms(500);
        led_buff[0]=led_table[17]; //Заполняем буфер разрядов
        led_buff[1]=led_table[1]; // индикация HELLO
        led_buff[2]=led_table[11];
        
        delay_ms(750);

        led_buff[0]=led_table[11]; //Заполняем буфер разрядов
        led_buff[1]=led_table[17]; // индикация HELLO
        led_buff[2]=led_table[1];
    
        delay_ms(delay_table);
        led_buff[0]=led_table[11]; //Заполняем буфер разрядов
        led_buff[1]=led_table[11]; // индикация HELLO
        led_buff[2]=led_table[17];
      
         delay_ms(delay_table);
        led_buff[0]=led_table[11]; //Заполняем буфер разрядов
        led_buff[1]=led_table[11]; // индикация HELLO
        led_buff[2]=led_table[11];
  
   
         delay_ms(400);


///////////////////////////////////////////////////////////////////////////////////
// вот по сюда
///////////////////////////////////////////////////////////////////////////////////

// сразу процу легче станет :)
       

while (1)
      {
      // Place your code here
   
       if (start==0 && flags_button==0)
        {
         delay_ms(50);
           if (start==0 && flags_button==0)
            {
             if (flags) flags=0; else flags=1;
             
             flags_button=1;
            }
        }
        
        if (select==0 && flags_button==0)
        {
         delay_ms(50);
         if (select==0 && flags_button==0)
          {
            timer_off_button++;
            
             if (timer_off_button › 15)
              {
               
               timer_select=0;
               flags_off_button=0;
               timer_off_button=0;
               flags_button=1;
              }
               else
               {
                flags_off_button=1;
                
               }
           
          }  
        
        } 
        
       
        
        if (start && select)
        {
         flags_button=0;
            if(flags_off_button==1)
         {
          if ( timer_select++ == 7 ) {timer_select=0;}
            flags=0;
            temp1=0;
            timer_off_button=0;
            flags_off_button=0;
            
         }
         
        }
        
        if (timer_select == 0)
         {
            led_buff[2]=led_table[14]; //Заполняем буфер разрядов  
            led_buff[1]=led_table[14];
            led_buff[0]=led_table[0];
            
             load_clr;
            
         } else if (timer_select == 1)
            {
               temp_select=10;
            } else if (timer_select == 2)
               {
                  temp_select=20;
               } else if (timer_select == 3)
                  {
                     temp_select=30;
                  } else if (timer_select == 4)
                     {
                        temp_select=40;
                     } else if (timer_select == 5)
                        {
                           temp_select=50;
                        } else if (timer_select == 6)
                           { 
                            temp_select=60;
                           } else if (timer_select == 7)
                              {
                               timer_select=0;
                              }

          if (timer_select!=0)
         {
           if (temp1‹10)
          {

           led_buff[2]=led_table[temp]; //Заполняем буфер разрядов
   
           led_buff[1]=led_table[11];
   
           led_buff[0]=led_table[13];
          }
        
           if (temp1›9 && temp1‹100)
          {
           led_buff[2]=led_table[temp%10]; //Заполняем буфер разрядов
           temp=temp/10;
           led_buff[1]=led_table[temp%10];
      
           led_buff[0]=led_table[13];
          }
             if (flags)
              {
              
               if (sek==0){sek=temp_select; flags=0;}
               if(timer›0){timer--;} else{ timer=50; sek--;}
               temp1=sek;
               
               load_active;
               
              } 
               else
              {
               if(temp1‹temp_select){temp1++;} else{ temp1=temp_select; flags=0;}
               sek=temp_select;
               
               load_clr;
              }
         }
         
        




 
   
        delay_ms(20);
   
       temp = temp1;
    
       

      };
}
artyomugr вне форума  
Непрочитано 23.08.2011, 11:01  
BolshoyK
Гражданин KAZUS.RUN
 
Регистрация: 25.11.2009
Сообщений: 609
Сказал спасибо: 37
Сказали Спасибо 140 раз(а) в 72 сообщении(ях)
BolshoyK на пути к лучшему
По умолчанию Re: Счетчик-таймер на ATtiny

Сообщение от Dimitrij Посмотреть сообщение
Программирование только начал осваивать, поэтому половину еще не понимаю.

В частности, почему программа нормально работает только со значением 5 секунд, а с другими нет. Ставлю 0 секунд - повторно не запускается, 60 минут - при пуске сразу высвечивает 60.00 и не считает? P.S. Только сейчас проверил, и со значением 5 секунд досчитывает до 5 секунд и останавливается. Видно, выполняется заданное условие и счет останавливается.
Брал оттуда установки TIMER0, TIMER1 выставлял, как в исходнике, кусок #pragma optsize- выбросил, программа не запускается.
Не надо ничего выкидывать. визард делает все правильно.
Давай предметно разговаривать, по моему ты неправильно поставил задачу, а я тебе соотвественно дал не то что ты хотел.
это для 5 секунд:
if ((des_min == 0) & (min == 0) & (des_sec == 0) & (sec == 5)) { start = 0; }
Это для 15 секунд
if ((des_min == 0) & (min == 0) & (des_sec == 1) & (sec == 5)) { start = 0; }
Как видно это задается жестко в программе. Если хочешь чтобы можно было устанавливать это все вручную с прибора - сначала сделай установку с кнопок. они у меня не работают на том коде что ты присылал в первом письме.
BolshoyK вне форума  
Непрочитано 23.08.2011, 15:41  
Dimitrij
Временная регистрация
 
Регистрация: 26.02.2005
Сообщений: 78
Сказал спасибо: 15
Сказали Спасибо 16 раз(а) в 16 сообщении(ях)
Dimitrij на пути к лучшему
По умолчанию Re: Счетчик-таймер на ATtiny

BolshoyK, Это мы друг друга не поняли.
Сообщение от BolshoyK Посмотреть сообщение
сначала сделай установку с кнопок
Я и хотел, что бы помогли сделать эту установку, у меня не получается. А при достижении счетчиком 0000 надо делать програмный сброс, иначе он дальше не работает.

artyomugr, Я это уже пробовал, меня не устраивает в принципе. А дорабатывать под свои нужды не достаточно знаний, очени многое нужно менять.
Dimitrij вне форума  
Непрочитано 23.08.2011, 20:06  
Dimitrij
Временная регистрация
 
Регистрация: 26.02.2005
Сообщений: 78
Сказал спасибо: 15
Сказали Спасибо 16 раз(а) в 16 сообщении(ях)
Dimitrij на пути к лучшему
По умолчанию Re: Счетчик-таймер на ATtiny

Сообщение от heady69 Посмотреть сообщение
Код таймера из одной "поделки"
А нельзя ли скинуть полностью код этой "поделки"?
Dimitrij вне форума  
Непрочитано 02.09.2011, 12:18  
Godzilla82
Почётный гражданин KAZUS.RUN
 
Регистрация: 29.10.2006
Сообщений: 1,449
Сказал спасибо: 99
Сказали Спасибо 318 раз(а) в 234 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: Счетчик-таймер на ATtiny

Напишите ещё раз техзадание.

То есть досканально:

какой камушек
какие средства управления/отображения
сколько кнопок
что должно происходить при нажатии каждой кнопки
Godzilla82 вне форума  
Непрочитано 02.09.2011, 14:56  
Dimitrij
Временная регистрация
 
Регистрация: 26.02.2005
Сообщений: 78
Сказал спасибо: 15
Сказали Спасибо 16 раз(а) в 16 сообщении(ях)
Dimitrij на пути к лучшему
По умолчанию Re: Счетчик-таймер на ATtiny

Godzilla82,

В принципе, под то, что мне надо, код я написал. Но, мне кажется, получился он уж очень громоздкий, а как его упростить, я не знаю. Код и схема в файле.
В кратце: секундомер и таймер на ATMega8, кнопки: пуск, стоп, сброс, ускоренная установка единиц и десятков секунд, переключатель прямой и обратный счет. Вывод показаний на 4-разрядный 7-сегментный индикатор с общим анодом для всех сегментов и всех разрядов. Поэтому для поразрядной коммутации катодов применил дешифраторы 555ИД5 (74LS156). Кроме того, отдельно индикация счета и обратного счета, звуковой сигнал по окончании обратного счета.
При прямом счете: пуск-запустили счет с 0000 и мигает разделительная точка, горит индикатор счета; стоп-остановили, точка горит, индикатор счета нет; сброс-обнулили и точка горит.
При обратном счете: установили время, пуск, стоп и сброс-функции те же, по окончании счета (0000) индикация счета гаснет (вместо нее выведу управление исполнительным устройством) и выдается прерывистый звуковой сигнал. При прямом и обратном счете повторное управление только после сброса.
Как-то так.
Вложения:
Тип файла: rar Clock.rar (344.4 Кб, 91 просмотров)
Dimitrij вне форума  
Непрочитано 03.09.2011, 05:38  
Godzilla82
Почётный гражданин KAZUS.RUN
 
Регистрация: 29.10.2006
Сообщений: 1,449
Сказал спасибо: 99
Сказали Спасибо 318 раз(а) в 234 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: Счетчик-таймер на ATtiny

Как-то так...

PHP код:
 
#include ‹mega8.h›
#include ‹delay.h›

#define     ZUMMER       0b00000100
#define     WORK         0b00001000
#define     REVERSE      0b00010000

unsigned char font[]    = {0b11000000,0b11111001,0b10100100,0b10110000,0b100  11001,0b10010010,0b10000010,0b11111000,0b10000000,  0b10010000};        //знакогенератор OA.
unsigned char clock[4]  = {0,0,0,0};
signed char   start     = 0;
unsigned char beep      = 0;
unsigned char trigger   = 0;
unsigned char x         = 0;
unsigned char tik;
unsigned int  time;


// динамическая индикация
//
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
x++;
x &= 0x03;
PORTB = 0xFF;                                                           // обнуляем порт
PORTD = (PORTD & 0xFC) | x;                                             // выводим двоичный код для дешифраторов 
PORTB = font[clock[x]];                                                 // выводим цифры
if(x == 2)  PORTB.7 = trigger & start;                                  // выводим точку
}


// отсчет времени
// 200 мс
interrupt [TIM1_COMPA] void timer1_compa_isr(void)    
{
unsigned char sec,min;
tik++;
if (tik › 4)        {
                    tik = 0;
                    trigger ^= 1;
                    time += start;
                    if (time › 5999)    {                               // окончание счёта
                                        if(start == -1) beep = 1;       // включаем динамик, если был обратный отсчёт
                                        start = 0;
                                        time = 0;
                                        PORTC &= ~WORK;                 // выключение индикатора "счёт"
                                        }
                    }
sec = time % 60;
min = time / 60;
if(start == 0)      {
                    if(PIND.7 == 0)    sec++;
                    if(PIND.6 == 0)    min++;                                
                    sec %= 60;
                    min %= 100;
                    time = min * 60 + sec;
                    }
clock[0] = sec % 10;
clock[1] = sec / 10;
clock[2] = min % 10;
clock[3] = min / 10;
}


// Timer2: 1 мс
interrupt [TIM2_COMP] void timer2_comp_isr(void)
{
if((beep) && (trigger)) PORTC ^= ZUMMER;                                //по окончанию обратного счета сигнал 1 кГц
else                    PORTC &= ~ZUMMER;
}

void main(void)
{
PORTB   = 0x00;
DDRB    = 0xFF;
PORTC   = 0x13;
DDRC    = 0x3C;
PORTD   = 0xF0;
DDRD    = 0x0F;

// Timer0: 125 kHz
TCCR0   = 0x03;
TCNT0   = 0x00;

// Timer1: 125 kHz
TCCR1A  = 0x00;
TCCR1B  = 0x0B;
TCNT1H  = 0x00;
TCNT1L  = 0x00;
ICR1H   = 0x00;
ICR1L   = 0x00;
OCR1AH  = 0x61;
OCR1AL  = 0xA8;
OCR1BH  = 0x00;
OCR1BL  = 0x00;

// Timer2: 125 kHz
TCCR2   = 0x8C;
TCNT2   = 0x00;
OCR2    = 0x3D;

TIMSK   = 0x91;

ACSR    = 0x80;
ASSR    = 0x00;

#asm("sei")

begin:
if(PINC.1 == 0) {                                                       // стоп
                start = 0;
                beep = 0;                                               // отключаем динамик
                PORTC &= ~WORK;                                         // выключение индикатора "счёт"
                }
if(PIND.5 == 0) {                                                       // сброс
                start = 0;
                time = 0;
                beep = 0;                                               // отключаем динамик
                PORTC &= ~WORK;                                         // выключение индикатора "счёт"
                }
if(start)       goto begin;                                             // повторный запуск только после сброса или останова
if(PINC.0 == 0) {                                                       // старт
                if(PIND.4 == 1) {
                                start = 1;
                                PORTC.4 |= REVERSE;
                                }
                else            {
                                start = -1;
                                PORTC &= ~REVERSE;                      // индикация обратного счета
                                }
                beep = 0;                                               // отключаем динамик
                PORTC |= WORK;                                          // включение индикатора "счёт"
                }
goto begin;
} 

Последний раз редактировалось Godzilla82; 03.09.2011 в 08:01.
Godzilla82 вне форума  
Сказали "Спасибо" Godzilla82
Dimitrij (03.09.2011)
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
газ счетчик Mastino Информация по радиокомпонентам 2 31.03.2006 23:57
[Решено] Таймер для Ксеноновых ламп ближнего света Гость Электроника средств транспорта 6 17.01.2006 22:51
таймер и симуляция в MPLAB Sim lisergin Микроконтроллеры, АЦП, память и т.д 0 16.01.2006 15:35
Задача - таймер. и прерывание! chipic128 Микроконтроллеры, АЦП, память и т.д 11 22.02.2005 17:11


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.