Форум по Роботика

Технически форум => Общ форум => Темата е започната от: INF1n1t в Август 28, 2007, 04:03:28 pm

Титла: Какво е KC-1206
Публикувано от: INF1n1t в Август 28, 2007, 04:03:28 pm
http://www.deltron-euroind.it/pdf/avvisatori_acustici/buzzer_circuito_stampato/senza_driver_elettro.pdf

Тук има и информация за това, но все още не съм сигурен точно какво е. Казват, че е magnetic transducer. От уикипедия проверих, ама не пише точно.

Да кажа само, че намерих елемента на една модемна платка...
Титла: Какво е KC-1206
Публикувано от: tommyboy в Август 28, 2007, 05:54:57 pm
ми аз мился , че е пиезо зумер
Титла: Какво е KC-1206
Публикувано от: Borislav в Август 28, 2007, 06:22:10 pm
Цитат на: "tommyboy"
ми аз мился , че е пиезо зумер


На мен ми прилича на някакъв магнетрон (измерващ магнитното поле)... Вероятно в модема е бил някъде до изхода? :)
Поздрави!
Титла: Какво е KC-1206
Публикувано от: tommyboy в Август 28, 2007, 06:40:10 pm
май братле си прав ама за какво да измерва магнитното поле , че не разбирам мн от модеми  :D
Титла: Какво е KC-1206
Публикувано от: INF1n1t в Август 28, 2007, 07:19:33 pm
Амм не. Всъщност ти какво разбираш под изход? Ако разбираш мястото, където се включват кабелите, значи не е близо до изхода а точно обратното - възможно най-далече е.
Титла: Какво е KC-1206
Публикувано от: Borislav в Август 28, 2007, 08:40:52 pm
Това си е чист пиезоизлъчвател... Видях думата "magnetic transducer", а на чертежите - "frequency" и съм се подвел. :) А и в заглавието на линка пише buzzer - а тази дума значи високоговорител, пиезоизлъчвател.. :) Така че няма нищо интересно в това - има го и в китайските будилници! Аз си го отрязах от един будилник, може да направя робот, който да пищи при определена команда... :) Поздрави!
Титла: Какво е KC-1206
Публикувано от: INF1n1t в Август 28, 2007, 08:42:22 pm
Ааа това ли било! :) Сигурно може да се вгради някъде за бъзик..
Титла: Какво е KC-1206
Публикувано от: tommyboy в Август 28, 2007, 09:31:08 pm
Бе и аз гледам има показана честота и сила на звука , ама винаги има несигурност  :D  :D
Титла: Какво е KC-1206
Публикувано от: INF1n1t в Август 28, 2007, 09:33:53 pm
Еми тия дни мисля да хвана поялника, защото имам три платки с доза елементи на тях. Ако успея да го разпоя този елемент, може да го сложа някъде другаде и да го опитам (трябва да изуча и начинът му на работа)
Титла: Какво е KC-1206
Публикувано от: tommyboy в Август 28, 2007, 09:46:12 pm
ами батка ако му подаваш  правоъгълни импуси с ралична честота , може да мениш честотата на издавания звук  ;) . Аз не съм го прабвал , но го четох в една книга .
Титла: Какво е KC-1206
Публикувано от: INF1n1t в Август 28, 2007, 10:36:19 pm
Мдам, благодаря, че ме улесни :)
Титла: Какво е KC-1206
Публикувано от: INF1n1t в Септември 30, 2007, 11:49:10 pm
Такам, точно така. Значи това си е пиезоговорителче (писукче, buzzer-че, пищялка, абе там както и да е - издава звук). За да можете да го управлявате се оказа, че просто трябва да му давате, както tommyboy каза, правоъгълни импулси с определена честота.

 400 Hz звук, означава да има 400 изменения в секунда. Значи трябва да подадеме 400 импулса. За да ги подадеме толкова импулси, трябва да правиме два пъти повече промени, за което ме подсети datamatrix. Тоест, трябва да имаме 800 изменения в секунда за 400 Hz звук. Дотук всичко е добре, а ето малко C код за подкарване на buzzer:


counter=250;
  while (counter)
  {
   output_high(PIN_B1);
   delay=5000;
   delay_us(delay);
   output_low(PIN_B1);
   counter--;
  }


Програмата работи за 4 MHz PIC 16F84A. delay_us ще забави с x ултрасекунди. Всъщност, логиката е следната - за една секунда имаме 4 милиона изменения (4Mhz). Колко трябва да ни е забавянето, ако искаме 800 изменения. Ами 4 000 000 / 800, и ни се получава 5000. Нагласяме delay_us(5000) и сме напълно готови - имаме 800 изменения в секунда, а всъщност 400 Hz звук.

 Честотата на звука е добре, но силата му? Последователно на buzzer-а, сме свързали някакъв резистор (според каталога на елемента). Според съпротивлението протича даден ток x. Колкото е по-голям този ток, толкова по-силен звук имаме. Най-хубаво е това да се проследи с потенциометър.

 Ами общо взето това е. Имах някакви проблеми с пиезоговорителя, затова реших, че може да е от полза и да улесни тези, които тепърва ще се занимават с такъв елемент.
Титла: Какво е KC-1206
Публикувано от: spookyboy в Октомври 01, 2007, 01:58:25 pm
Ултрасекунди? Може би микросекунди :)
Много хубаво си го направил, но работи ли :)
Защото според мен ако искаш сигнала да е правоъгълен трябва да има забавяне между всяко "изменение", а ти си направил забавяне само между high и low (трябва и между low и high, тоест след low)

Освен това, delay_us работи с микросекунди, а не трептенията на процесора, за това няма значение каква е неговата скорост, delay_us(1000000) винаги ще забавя с една секунда -> в твоя случай ако искаш честота 400 Hz ти трябват 1000000/400 = 2500 us дължина на вълната (от low до low или от high до high), т.е. две забавяния от по 1250 us.

*Също така не е хубаво да правиш забавянето с delay функция, защото какво става: правиш 800 забавяния от по 1250 us -> 1000000 us = 1 s ти е общо забавянето, но всяка операция отнема време на процесора, включително и output_high(), =, output_low(), --, затова времето за тези 400 трептения които искаш да създадеш ще е 1 s + 250 * (O(output_high()) + O(=) + O(output_low()) + O(--) + O(==)). По е добре да се ползват таймери, уви при микроконтролерите нзн как стоят нещата с тях, така че ето код с delay:
#define OUTPUT_TIME 2
#define FREQUENCY 400
...
int delay = 500000 / FREQUENCY;
for (int i = 0; i < OUTPUT_TIME * FREQUENCY; ++i) {
   output_high (PIN_B1);
   delay_us (delay);
   Output_low (PIN_B1);
   delay_us (delay);
}


*EDIT: sv_shady ме светна че това не е точно така, така че се извинявам по тази точка. Другите обаче си остават  :)
Титла: Какво е KC-1206
Публикувано от: INF1n1t в Октомври 02, 2007, 10:18:30 am
Цитат на: "spookyboy"
Ултрасекунди? Може би микросекунди :)
Много хубаво си го направил, но работи ли :)
Защото според мен ако искаш сигнала да е правоъгълен трябва да има забавяне между всяко "изменение", а ти си направил забавяне само между high и low (трябва и между low и high, тоест след low)

Освен това, delay_us работи с микросекунди, а не трептенията на процесора, за това няма значение каква е неговата скорост, delay_us(1000000) винаги ще забавя с една секунда -> в твоя случай ако искаш честота 400 Hz ти трябват 1000000/400 = 2500 us дължина на вълната (от low до low или от high до high), т.е. две забавяния от по 1250 us.

*Също така не е хубаво да правиш забавянето с delay функция, защото какво става: правиш 800 забавяния от по 1250 us -> 1000000 us = 1 s ти е общо забавянето, но всяка операция отнема време на процесора, включително и output_high(), =, output_low(), --, затова времето за тези 400 трептения които искаш да създадеш ще е 1 s + 250 * (O(output_high()) + O(=) + O(output_low()) + O(--) + O(==)). По е добре да се ползват таймери, уви при микроконтролерите нзн как стоят нещата с тях, така че ето код с delay:
#define OUTPUT_TIME 2
#define FREQUENCY 400
...
int delay = 500000 / FREQUENCY;
for (int i = 0; i < OUTPUT_TIME * FREQUENCY; ++i) {
   output_high (PIN_B1);
   delay_us (delay);
   Output_low (PIN_B1);
   delay_us (delay);
}


*EDIT: sv_shady ме светна че това не е точно така, така че се извинявам по тази точка. Другите обаче си остават  :)


 Здравей, благодаря за допълненията. Първо да кажа, моят код работи. Поне при мен. Проблемът всъщност е че аз не ви дадох целият код. Ето я цялата програма:


#include <16F84A.h>
#fuses XT, NOWDT, NOPROTECT, PUT
#use delay(clock=4000000)

void main()
{
 int counter;
 int delay;

 while (1)
 {
  output_high(PIN_B2);
  delay_ms(500);
  output_low(PIN_B2);
  output_high(PIN_B3);
  delay_ms(500);
  output_low(PIN_B3);
  counter=250;
  while (counter)
  {
   output_high(PIN_B1);
   delay=10000;
   delay_us(delay);
   output_low(PIN_B1);
   counter--;
  }
   counter=250;
  while (counter)
  {
   output_high(PIN_B1);
   delay=5000;
   delay_us(delay);
   output_low(PIN_B1);
   counter--;
  }
    counter=250;
  while (counter)
  {
   output_high(PIN_B1);
   delay=5000;
   delay_us(delay);
   output_low(PIN_B1);
   counter--;
  }

 }
}


 Тук всичко работи само единствения проблем, е че както ти казваш трябва да има забавяне между трите цикъла, защото иначе онова изговаря тоновете прекалено бързо.

Ултрасекунди е равно на микросекунди по моему :)

 Дам, това не го знаех за delay_us() и ги бях сметнал през тактовата честота.
Титла: Какво е KC-1206
Публикувано от: tommyboy в Октомври 02, 2007, 11:14:13 am
няма ли да ви е по лесно с един 555 вместо да пишете програми  ;)
Титла: Какво е KC-1206
Публикувано от: spookyboy в Октомври 02, 2007, 02:52:22 pm
@tommyboy Ами то писането на една такава програма не отнема повече от 5 мин., така че не виждам кое му е сложното :)

@INF1n1t За съжеление мозъка ми се е изкривил да мисли алгоритмично и това:counter=250;
  while (counter)
  {
   output_high(PIN_B1);
   delay=10000;
   delay_us(delay);
   output_low(PIN_B1);
   counter--;
  }
напрао ми бърка в очите, моля те изкарай го тоя delay = 10000; извън цикъла, че шсе побъркам ;)
Така и така не се променя, едно присвояване е достатъчно :)
Титла: Какво е KC-1206
Публикувано от: Methuselah в Октомври 02, 2007, 09:47:50 pm
Абе тия компилатори за различните мцу-та нямат ли оптимизатори?
Първо - оптимизатора би трябвало сам да го изкара от цикъла, и второ да забележи че не се променя и да го замени където трябва.
Разбира се - ако няма оптимизатор - тъпа "грешка"
Сещам се за една книжка за добър стил на програмиране в която имаше доста сериозни грешки предизвикане точно от неразбиране какво кога става и какво прави оптимизатора. Може да я кача - ако не за друго, то поне защото на почти всяка страница имаше весели случки.
Титла: Какво е KC-1206
Публикувано от: INF1n1t в Октомври 02, 2007, 11:19:03 pm
Абе вие сте ебаси хората, бе! Какво толкова му има...какво ти се е изкривил мозъка па на тебе. Дразнат ме тия истории, са тоя код съм го дал примерно, за какво трябва да се хващате са глупости. Разбирам да правя ядрени опити - не правя. Едно просто buzzer-че. Онзи код, който дадох бачка и лично съм го пробвал.

Methuselah, лично за gcc има си опции за това какво може и не може да прави оптимизатора и с цената на какво. За други компилатори не знам.
Титла: Какво е KC-1206
Публикувано от: spookyboy в Октомври 03, 2007, 12:56:13 pm
Цитат на: "INF1n1t"
Абе вие сте ебаси хората, бе! Какво толкова му има...какво ти се е изкривил мозъка па на тебе. Дразнат ме тия истории, са тоя код съм го дал примерно, за какво трябва да се хващате са глупости. Разбирам да правя ядрени опити - не правя. Едно просто buzzer-че. Онзи код, който дадох бачка и лично съм го пробвал.

Methuselah, лично за gcc има си опции за това какво може и не може да прави оптимизатора и с цената на какво. За други компилатори не знам.

Споко бе пич, не се нерви ;) Мене мозъка ми си е изкривен от практиката  :). Просто ти казвам че ще е по-красиво от програмистска гледна точка. Целта ми не е да се заяждам с тебе.
Титла: Какво е KC-1206
Публикувано от: DataMatrix в Октомври 03, 2007, 01:53:47 pm
Ако толкова ви е за красотата айде
counter=250;
  while (counter)
  {
   output_high(PIN_B1);
   delay_us(10000);
   output_low(PIN_B1);
   counter--;
  }


Голяма работа, стига спорове. Работи ли - работи. Който не му харесва да си го преработи за него, без да го прави на световен проблем. Аз кодове не поствам, за да не се получават такива разправии.
Ето едно едно код-че от мене да разгадаете какво прави:
#include <16F84A.h>
#fuses XT,NOWDT,NOPROTECT,PUT
#use delay(clock=4000000)

void main()
{
 int k=0;
 disable_interrupts(GLOBAL);
 k=read_eeprom(0);
 for ( ; ; )
 {
  output_b(k);
  write_eeprom(0,k);
  if(k<15) k++;
  else k=0;
  delay_ms(1000);
 }
}
Титла: Какво е KC-1206
Публикувано от: INF1n1t в Октомври 03, 2007, 08:27:46 pm
Цитат на: "spookyboy"
Цитат на: "INF1n1t"
Абе вие сте ебаси хората, бе! Какво толкова му има...какво ти се е изкривил мозъка па на тебе. Дразнат ме тия истории, са тоя код съм го дал примерно, за какво трябва да се хващате са глупости. Разбирам да правя ядрени опити - не правя. Едно просто buzzer-че. Онзи код, който дадох бачка и лично съм го пробвал.

Methuselah, лично за gcc има си опции за това какво може и не може да прави оптимизатора и с цената на какво. За други компилатори не знам.

Споко бе пич, не се нерви ;) Мене мозъка ми си е изкривен от практиката  :). Просто ти казвам че ще е по-красиво от програмистска гледна точка. Целта ми не е да се заяждам с тебе.


 Извинявай, просто с друго впечатление останах.

  Но иначе за втория delay си прав, но което е интересното - работи и без него.
Титла: Какво е KC-1206
Публикувано от: spookyboy в Октомври 03, 2007, 09:43:59 pm
Според мен, заради голямата честота не се забелязва разликата, но мисля че ще се усети при по ниска от 50 Hz. И да не говоря празни приказки ето пример:
(http://www.robotics-bg.com/upload/files/sound.jpg)
тук епсилон е времето за което контролера изпълнява функцията output_low(), което е достатъчно голямо, за да може да се чуе звукът при висока честота (напр 200 Hz) и същевременно достатъчно малко за да се усети разликата между двата начина на възпроизвеждане. Надявам се да съм помогнал някакси :)
Титла: Какво е KC-1206
Публикувано от: spookyboy в Октомври 10, 2007, 01:22:14 am
#include <stdio.h>
#include <dos.h>

enum note {C, Cis, D, Dis, E, F, Fis, G, Gis, A, Ais, B};
short freq[12][10] = { {16, 33, 65, 131, 267, 523, 1047, 2093, 4186, 8372},
{17, 35, 69, 139, 277, 554, 1109, 2218, 4435, 8870},
{18, 37, 73, 147, 294, 587, 1175, 2349, 4699, 9397},
{19, 39, 78, 156, 311, 622, 1245, 2489, 4978, 9956},
{21, 41, 82, 165, 327, 659, 1319, 2637, 5274, 10548},
{22, 44, 87, 175, 349, 698, 1397, 2799, 5588, 11175},
{23, 46, 92, 185, 370, 740, 1480, 2960, 5920, 11840},
{25, 49, 98, 196, 392, 784, 1568, 3136, 6272, 12544},
{26, 52, 104, 208, 415, 831, 1661, 3322, 6645, 13290},
{28, 55, 110, 220, 440, 880, 1760, 3520, 7040, 14080},
{29, 58, 117, 233, 466, 932, 1865, 3729, 7459, 14917},
{31, 62, 123, 247, 494, 988, 1976, 3951, 7902, 15804}};

void _sound(enum note n, short octave, short period) {
sound(freq[n][octave]);
delay(period);
nosound();
}

int main () {
_sound(G, 4, 500);
_sound(G, 4, 500);
_sound(G, 4, 500);

_sound(E, 4, 250);
_sound(B, 4, 250);
_sound(G, 4, 500);
_sound(E, 4, 250);
_sound(B, 4, 250);
_sound(G, 4, 1000);
delay(500);

_sound(D, 5, 500);
_sound(D, 5, 500);
_sound(D, 5, 500);

_sound(E, 5, 250);
_sound(A, 4, 250);
_sound(F, 4, 500);
_sound(E, 4, 250);
_sound(B, 4, 250);
_sound(G, 4, 1000);

return 0;
}
Ето програмата с Дарт Вейдъра дето я искаше днеска :) Работи за комп. Ако искаш да заработи и за пиезо зумера трябва да смениш _sound функцията с тази:_sound(enum note n, short octave, long period) {
long delay = 500000 / freq[n][octave];
period *= 1000;
for (long i = 0; (i << 1) * delay < period; ++i) {
output_high (PIN_B1);
delay_us (delay);
output_low (PIN_B1);
delay_us (delay);
}
И dos.h става излишен. Have Fun! :)
Титла: Какво е KC-1206
Публикувано от: tommyboy в Октомври 10, 2007, 10:02:43 am
аве тия прграмки ги пишете на С нали  , щото не ми прилича на асемблер
Титла: Какво е KC-1206
Публикувано от: DataMatrix в Октомври 10, 2007, 10:14:32 am
Цитат на: "tommyboy"
аве тия прграмки ги пишете на С нали  , щото не ми прилича на асемблер
:shock:
Естетвено че на C :zubi:
Титла: Какво е KC-1206
Публикувано от: mohaha в Октомври 10, 2007, 05:47:59 pm
Може ли една схемичка за такива правоъгълни импулси, че съм далеч от микроконтролерите.  :oops:  :D
Титла: Какво е KC-1206
Публикувано от: tommyboy в Октомври 10, 2007, 10:59:52 pm
Цитат на: "DataMatrix47"
Цитат на: "tommyboy"
аве тия прграмки ги пишете на С нали  , щото не ми прилича на асемблер
:shock:
Естетвено че на C :zubi:



що ве може на асемблер ама естествено че е на С верно тъп въпрос зададох. :lol:
Титла: Какво е KC-1206
Публикувано от: mohaha в Октомври 11, 2007, 12:31:18 am
Малко можете ли да ми разясните какво е асемблер :oops: .(Съжелявам, ако е спам, но искам да използвам тези пиезоизлъчватели, но незнам как  :oops: . )
Титла: Какво е KC-1206
Публикувано от: DataMatrix в Октомври 11, 2007, 12:56:27 am
За пиезотата въобще не е нужен асемблер. Иначе асемблер е език, който е от възможно най-ниско ниво и представлява машинен код, но в едни вид в който човек може да го възприеме.
Титла: Какво е KC-1206
Публикувано от: DataMatrix в Октомври 12, 2007, 03:21:44 pm
Цитат на: "spookyboy"
#include <stdio.h>
#include <dos.h>

enum note {C, Cis, D, Dis, E, F, Fis, G, Gis, A, Ais, B};
short freq[12][10] = { {16, 33, 65, 131, 267, 523, 1047, 2093, 4186, 8372},
{17, 35, 69, 139, 277, 554, 1109, 2218, 4435, 8870},
{18, 37, 73, 147, 294, 587, 1175, 2349, 4699, 9397},
{19, 39, 78, 156, 311, 622, 1245, 2489, 4978, 9956},
{21, 41, 82, 165, 327, 659, 1319, 2637, 5274, 10548},
{22, 44, 87, 175, 349, 698, 1397, 2799, 5588, 11175},
{23, 46, 92, 185, 370, 740, 1480, 2960, 5920, 11840},
{25, 49, 98, 196, 392, 784, 1568, 3136, 6272, 12544},
{26, 52, 104, 208, 415, 831, 1661, 3322, 6645, 13290},
{28, 55, 110, 220, 440, 880, 1760, 3520, 7040, 14080},
{29, 58, 117, 233, 466, 932, 1865, 3729, 7459, 14917},
{31, 62, 123, 247, 494, 988, 1976, 3951, 7902, 15804}};

void _sound(enum note n, short octave, short period) {
sound(freq[n][octave]);
delay(period);
nosound();
}

int main () {
_sound(G, 4, 500);
_sound(G, 4, 500);
_sound(G, 4, 500);

_sound(E, 4, 250);
_sound(B, 4, 250);
_sound(G, 4, 500);
_sound(E, 4, 250);
_sound(B, 4, 250);
_sound(G, 4, 1000);
delay(500);

_sound(D, 5, 500);
_sound(D, 5, 500);
_sound(D, 5, 500);

_sound(E, 5, 250);
_sound(A, 4, 250);
_sound(F, 4, 500);
_sound(E, 4, 250);
_sound(B, 4, 250);
_sound(G, 4, 1000);

return 0;
}
Ето програмата с Дарт Вейдъра

Цитат
 [Linker error] undefined reference to `sound'
  [Linker error] undefined reference to `delay'
  [Linker error] undefined reference to `nosound'
  [Linker error] undefined reference to `delay'
  ld returned 1 exit status

Искам да чуя вейдърааа!
Титла: Какво е KC-1206
Публикувано от: sv_shady в Октомври 12, 2007, 10:54:07 pm
Струва ми се, че нямаш dos.h
Титла: Какво е KC-1206
Публикувано от: DataMatrix в Октомври 13, 2007, 07:15:32 pm
Цитат на: "sv_shady"
Струва ми се, че нямаш dos.h

Имам го. Оказа се че ги няма функциите sound() & delay();
/*
 * dos.h
 * This file has no copyright assigned and is placed in the Public Domain.
 * This file is a part of the mingw-runtime package.
 * No warranty is given; refer to the file DISCLAIMER within the package.
 *
 * DOS-specific functions and structures.
 *
 */

#ifndef _DOS_H_
#define _DOS_H_

/* All the headers include this file. */
#include <_mingw.h>

#define __need_wchar_t
#ifndef RC_INVOKED
#include <stddef.h>
#endif /* Not RC_INVOKED */

/* For DOS file attributes */
#include <io.h>

#ifndef RC_INVOKED

#ifdef __cplusplus
extern "C" {
#endif

#ifndef __MSVCRT__ /* these are in CRTDLL, but not MSVCRT */
#ifndef __DECLSPEC_SUPPORTED
extern unsigned int *_imp___basemajor_dll;
extern unsigned int *_imp___baseminor_dll;
extern unsigned int *_imp___baseversion_dll;
extern unsigned int *_imp___osmajor_dll;
extern unsigned int *_imp___osminor_dll;
extern unsigned int *_imp___osmode_dll;

#define _basemajor (*_imp___basemajor_dll)
#define _baseminor (*_imp___baseminor_dll)
#define _baseversion (*_imp___baseversion_dll)
#define _osmajor (*_imp___osmajor_dll)
#define _osminor (*_imp___osminor_dll)
#define _osmode (*_imp___osmode_dll)

#else /* __DECLSPEC_SUPPORTED */

__MINGW_IMPORT unsigned int _basemajor_dll;
__MINGW_IMPORT unsigned int _baseminor_dll;
__MINGW_IMPORT unsigned int _baseversion_dll;
__MINGW_IMPORT unsigned int _osmajor_dll;
__MINGW_IMPORT unsigned int _osminor_dll;
__MINGW_IMPORT unsigned int _osmode_dll;

#define _basemajor _basemajor_dll
#define _baseminor _baseminor_dll
#define _baseversion _baseversion_dll
#define _osmajor _osmajor_dll
#define _osminor _osminor_dll
#define _osmode _osmode_dll

#endif /* __DECLSPEC_SUPPORTED */
#endif /* ! __MSVCRT__ */

#ifndef _DISKFREE_T_DEFINED
/* needed by _getdiskfree (also in direct.h) */
struct _diskfree_t {
unsigned total_clusters;
unsigned avail_clusters;
unsigned sectors_per_cluster;
unsigned bytes_per_sector;
};
#define _DISKFREE_T_DEFINED
#endif  

_CRTIMP unsigned __cdecl _getdiskfree (unsigned, struct _diskfree_t *);

#ifndef _NO_OLDNAMES
# define diskfree_t _diskfree_t
#endif

#ifdef __cplusplus
}
#endif

#endif /* Not RC_INVOKED */

#endif /* Not _DOS_H_ */
Титла: Какво е KC-1206
Публикувано от: spookyboy в Октомври 13, 2007, 11:33:54 pm
Заповядай (http://www.robotics-bg.com/upload/files/DOS.rar) :) трябва да го преименуваш на DOS.H