Давайте делиться своими исходниками!

Делимся исходными кодами

Давайте делиться своими исходниками!

Сообщение Radioded » 04 янв 2009, 03:39

Уважаемые форумчане, давайте делать благие дела, а именно делиться своими исходниками. Не важно на чем написан код, будь то Си или ассемблер - возможно они кому-то пригодятся. Очень многие радиолюбители будут благодарны. Как говориться, с миру по нитке!
Аватара пользователя
Radioded
Site Admin
 
Сообщения: 180
Зарегистрирован: 07 ноя 2008, 02:47
Откуда: Москва

Re: Давайте делиться своими исходниками!

Сообщение skiff » 17 окт 2009, 19:13

Доброго времени суток!есть маленький кодик на Си, написанный в среде IAR System 5.11full. Может кому пригодиться...
Код может применяться, когда в устройстве на микроконтроллере нужно сообщить о какой-либо завершенной работе (например жидкость нагрета до нужной температуры!)...

#include <ioavr.h> /* библиотека описания микроконтроллеров AVR */
#include <intrinsics.h> /* Из этой библиотеки используется */
/* функция __delay_cycles(float number) */
void signal(void)
{/* Функция формирования прерывистого сигнала зумера */
unsigned int i=0;

while(1)
{
PORTB=1; /* Зажигаем светодиод */
PORTD=1;
__delay_cycles(400); /* Задержка 0.4мс или 400мкс */
PORTD=0;
__delay_cycles(400);

i++; /* Пока переменная i не равна 1500 зумер звучит */
if(i==1500) /* Если переменная i равна 1500, то выполняется тело */
/* Оператора условия if{ } (Значение 1500 можно менять на */
/* свое усмотрение) */
{
PORTB=0; /* Гасим светодиод */
i=0; /* Обнуляем переменную */
__delay_cycles(800000); /* в течении 800мс зумер молчит (Значение 800000 можно менять на */
/* свое усмотрение) */
}
}
}

void main(void)
{/* Основная функция */
DDRD=1; /* Разряд PD0 на вывод (подключен зумер) */
DDRB=1; /* Разряд PВ0 на вывод */
signal(); /* Переходим на функцию сигнал */
}

Ваше мнение засчитывается... ;)
Аватара пользователя
skiff
 
Сообщения: 4
Зарегистрирован: 17 окт 2009, 17:56
Откуда: Омск

Re: Давайте делиться своими исходниками!

Сообщение skiff » 22 окт 2009, 19:59

Есть еще один исходничик, так сказать для разминочки написал! Для ЖКИ индикатора WH1602D-YYB-CTK. Организация меню посредством конструкции switch. Среда CodeVision AVR 1.25.3.

#include <Mega8.h>
#asm
.equ __lcd_port=0x18 /* Порт В */
#endasm
#include <lcd.h>
#include <delay.h>
#define sig 500
char tmp=0;

void menu(void)
{
while(1)
{
    /* организация работы кнопок. */
    if(PINC.0==0){if(tmp>=3){}else{tmp++;}} /* Если tmp >= 3, не увеличивать ее значение.*/
    if(PINC.1==0){if(tmp==0){}else{tmp--;}} /* Если tmp = 0, не уменьшать ее значение*/
switch (tmp)
{
case 0:
#pragma rl+ /* Указываем, что надо выводить русские буквы */
    delay_ms(sig);
    lcd_clear();
    lcd_gotoxy(6,0);
    lcd_putsf("Меню 1");break;
case 1:
    delay_ms(sig);
    lcd_clear();
    lcd_gotoxy(6,0);
    lcd_putsf("Меню 2");break;
case 2:
    delay_ms(sig);
    lcd_clear();
    lcd_gotoxy(6,0);
    lcd_putsf("Меню 3");break;
case 3:
    delay_ms(sig);
    lcd_clear();
    lcd_gotoxy(6,0);
    lcd_putsf("Меню 4");
    tmp=3;break;
#pragma rl-
}
}
}

void main(void)
{
    lcd_init(16); /* инициализация индикатора на 2 строки 16 символов */
    lcd_clear();
    DDRC=0x00; /* Порт С на ввод */
    PORTC=0x03; /* Подключаем подтягивающие резисторы */
    menu();
}

Изображение
Аватара пользователя
skiff
 
Сообщения: 4
Зарегистрирован: 17 окт 2009, 17:56
Откуда: Омск


Вернуться в Исходники



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

Зарегистрированные пользователи: нет зарегистрированных пользователей