• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите составить программу для CodeVisionAVR

лесли

Ученик
Регистрация
4 Апр 2015
Сообщения
3
Реакции
0
Баллы
0
Помогите составить программу для CodeVisionAVR

Задание: Контроль количества посетителей в клубе.
В клуб помещается определённое количество человек. Входной светофор должен автоматически переключаться с зелёного на красный, когда количество посетителей превысило 50 человек. Как только места для посетителей освобождаются, вход снова обеспечивается включением зелёного сигнала. Вход и выход осуществляется через разные двери. Входящие и выходящие посетители подсчитываются с помощью фотодатчиков. При входе счётчик увеличивается на 1, а при выходе посетителя он снова уменьшается на 1. Информацию о количестве посетителей вывести на 7-ми сегментный индикатор.
Есть начало программы:

#include <mega8.h>
#include <delay.h>

int i=0;

void main(void)
{

PORTB=0b11000011;
DDRB= 0b00000011;

PORTC=0xFF;
DDRC=0xFF;

PORTD=0xFF;
DDRD=0xFF;

while (1)
{// подсчет количества и проверка условия
while (PINB.6==0) {i=i+1;delay_ms(2000);}
while (PINB.7==0) {i=i-1;delay_ms(2000);}
if (i<5){PORTB.1=0; PORTB.0=1;}
else {PORTB.0=0; PORTB.1=1;}
// вывод количества на два 7-сегм.индикатора (общий анод)
if (i==0){PORTC=0b11111111; PORTD=0b11000000;}
if (i==1){PORTC=0b11111111; PORTD=0b11111001;}
if (i==2){PORTC=0b11111111; PORTD=0b10100100;}
if (i==3){PORTC=0b11111111; PORTD=0b10110000;}
if (i==4){PORTC=0b11111111; PORTD=0b10011001;}
if (i==5){PORTC=0b11000000; PORTD=0b10010010;}

}

}
 
Принципиально CodeVisionAVR или на обычном avr-gcc подойдет?
 
Я не знаю, а в CodeVisionAVR если потом вставить - оно так же будет работать ?
И какой здесь язык программирования ?
 
Нужно будет менять под синтаксис данной программы. Например в CVA используется к примеру PINB.X написание, на обычном avr-gcc компилятор не поймет данную конструкцию.
 
А вы знаете как синтаксис менять потом ?
И чего вообще не хватает в этой программе? Вроде как говорили мне, что она практически готова, чуток исправить и добавить только надо.
 
Назад
Сверху