роботы робототехника микроконтроллеры


 Страниц (1): [1]   

> Описание: Может доделать?
СКАЗОЧНИК Post Id



Главнокомандующий


Сообщений всего: 377
Дата рег-ции: Нояб. 2009  



Здраствуйте, модераторы... =)
А скорее всего, nest!
Я вот тут статейку нашел
http://myrobot.ru/wiki/index.php...y.7-segIndicator
Хотел уточнить (она не дописана) на каком языке программирования надо написать код??? Просто я в ассемблере не очень понимаю пока, а вот на Си могу. И картинки вставить, только без фотографий и на АТМега8.
Хотелось бы увидеть статью законченной, да и если можно приложить руку к развитию сайта.
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



это не я делал :)
 
 Top
-dead- Post Id


Президент


Сообщений всего: 966
Дата рег-ции: Февр. 2009  



Там же история есть - некто Vek её писал.
 
 Top
mihail Post Id



Гуру


Сообщений всего: 1065
Дата рег-ции: Март 2010  



Судя по всему, дописывать эту статью никто, кроме Вас, не собирается. Полагаю, многие скажут Вам спасибо за хорошую статью.
 
 Top
ОЛЕГ Супермодератор Post Id



Супермодератор


Сообщений всего: 1732
Дата рег-ции: Нояб. 2008  



У меня есть вся программная часть на Си.
Раздраконивание двузначного числа на первый и второй знак и вывод их на индикатор по схеме, аналогичной предложенной в статье.
Если кто-то сможет разместить это в wiki (я сам не умею Улыбка ), то я пришлю.
 
 Top
Pashgan Post Id


Лейтенант


Сообщений всего: 31
Дата рег-ции: Март 2010  



Внесу свои пять копеек
http://chipenable.ru/index.php/p...-indikacija.html
 
 Top
СКАЗОЧНИК Post Id



Главнокомандующий


Сообщений всего: 377
Дата рег-ции: Нояб. 2009  



С вики на этом сайте я уже разбирался... =) Это все равно, что HTML весь понять для разметки страниц....
Вот я и хотел статейку оформить в ДОК формате, а чтобы тот, кто понимает как в вики выкладывать отформатировал ее туда. Конечно, я могу и сам посидеть, просто времени маловато. =)
ОЛЕГ, а можно код выложить? Очень хочу посмотреть.
(Добавление)
Pashgan пишет:
Внесу свои пять копеек
http://chipenable.ru/index.php/p...-indikacija.html


А вот это интересная статейка. Спасибо. =)
(Добавление)
Кстати, и сайт интересный тоже. Как это я на него до сих пор не наткнулся... Лошара я, наверное... =) Смущение
 
 Top
ОЛЕГ Супермодератор Post Id



Супермодератор


Сообщений всего: 1732
Дата рег-ции: Нояб. 2008  



Вот код, который я разрабатывал самостоятельно для своих нужд и который качует у меня из проекта в проект.
К порту D У меня подключены "перекладинки", к порту С- общий вывод, анод, по-моему.


CODE:

void num(unsigned char a) //ФУНКЦИЯ ВЫВОДА ЧИСЕЛ НА ИНДИКАТОР
{
PORTD = 0b01111111;
if (a == 0) {PORTD = 0b01000000;} // 0
if (a == 1) {PORTD = 0b01011110;} // 1
if (a == 2) {PORTD = 0b00100100;} // 2
if (a == 3) {PORTD = 0b00001100;} // 3
if (a == 4) {PORTD = 0b00011010;} // 4
if (a == 5) {PORTD = 0b00001001;} // 5
if (a == 6) {PORTD = 0b00000001;} // 6
if (a == 7) {PORTD = 0b01011100;} // 7
if (a == 8) {PORTD = 0b00000000;} // 8
if (a == 9) {PORTD = 0b00001000;} // 9
}
void breakdown(unsigned char c) //ФУНКЦИЯ ОПРЕДЕЛЕНИЯ ПЕРВОГО И ВТОРОГО ЗНАКОВ В ЧИСЛЕ
{
if (c < 10) first=0; //определение первой цифры двузначного числа
if ((c < 20)&&(c > 9)) first=1;
if ((c < 30)&&(c > 19)) first=2;
if ((c < 40)&&(c > 29)) first=3;
if ((c < 50)&&(c > 39)) first=4;
if ((c < 60)&&(c > 49)) first=5;
if ((c < 70)&&(c > 59)) first=6;
if ((c < 80)&&(c > 69)) first=7;
if ((c < 90)&&(c > 79)) first=8;
if ((c < 100)&&(c > 89)) first=9;
first=first*10; //определение второй цифры двузначного числа
second = c-first;
first=first/10;
}

void indicate(unsigned char x) //ФУНКЦИЯ ИНДИКАЦИИ ЗНАКОВ НА ИНДИКАТОРЕ
{
breakdown(x);
PORTC = 0b11101110;
num(first);
delay_ms(10);
PORTC = 0b11011110;
num(second);
delay_ms(10);
PORTC = 0b11001110;
}

void main(void) //ОСНОВНАЯ ФУНКЦИЯ
{

for (i = 0; i < 70; i++) //цикл индикации нашего числа
{
indicate(наше число от 00 до 99);
}

}


Цикл for (i = 0; i < 70; i++) специально сделан в основной функции, чтобы можно было вклинить что-нибудь еще, например, опрос кнопок.
 
 Top
-dead- Post Id


Президент


Сообщений всего: 966
Дата рег-ции: Февр. 2009  



МОжно упростить в коде, вместо:

if (c < 10) first=0; //определение первой цифры двузначного числа
if ((c < 20)&&(c > 9)) first=1;
if ((c < 30)&&(c > 19)) first=2;
if ((c < 40)&&(c > 29)) first=3;
if ((c < 50)&&(c > 39)) first=4;
if ((c < 60)&&(c > 49)) first=5;
if ((c < 70)&&(c > 59)) first=6;
if ((c < 80)&&(c > 69)) first=7;
if ((c < 90)&&(c > 79)) first=8;
if ((c < 100)&&(c > 89)) first=9;

написать:
first=0; //определение первой цифры двузначного числа
if (c > 9) first=1;
if (c > 19) first=2;
if (c > 29) first=3;
if (c > 39) first=4;
if (c > 49) first=5;
if (c > 59) first=6;
if (c > 69) first=7;
if (c > 79) first=8;
if (c > 89) first=9;
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  




вот бы оформляли аккуратненько и клали в вику ... :)
 
 Top
-dead- Post Id


Президент


Сообщений всего: 966
Дата рег-ции: Февр. 2009  



Или вообще:
first=0;
while((first+1)*10<=c)first++;
(Добавление)
Еще наверное можно сделать так, раз все равно деление пользуется:

first=c/10;
second=c%10;

Вроде должно работать Улыбка))
 
 Top
mihail Post Id



Гуру


Сообщений всего: 1065
Дата рег-ции: Март 2010  



To СКАЗОЧНИК

Лучше, сохраните статью в .rtf

Если желающих больше нет, могу попробовать оформить статью в wiki.

Думаю все получится Улыбка
 
 Top
ОЛЕГ Супермодератор Post Id



Супермодератор


Сообщений всего: 1732
Дата рег-ции: Нояб. 2008  



-dead- пишет:
МОжно упростить в коде, вместо

Спасибо, я не подумал. Улыбка
 
 Top
Страниц (1): [1]
« Болталочка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru