Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
Vendet
0 / 0 / 0
Регистрация: 27.04.2014
Сообщений: 4
1

Управление светодиодами на ATtiny2313

18.11.2014, 19:09. Просмотров 1565. Ответов 7
Метки нет (Все метки)

Ребята, помогите. Нужно написать программу под ATtiny 2313,
где при нажатии кнопки 1 горит Led PB2
при нажатии кнопки 2 горит Led PB2, но медленнеи
при нажатии кнопки 3 горит Led PB3
при нажатии кнопки 4 горит оба LED PB2 и PB3 гаснут.
мои код не работает, что не так?

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#define F_CPU 2000000UL 
#include <avr/io.h> // 2313
#include <util/delay.h> // delay
 
int main(void)
 
{
    // output pin
    DDRB |= (1 << PB2) | (1 << PB3);
    // input pin
    DDRD &= ~(1 << PD1) & ~(1 << PD2) & ~(1 << PD3) & ~(1 << PD4);
    PORTB |= (1 << PB2) | (1 << PB2) | (1 << PB3);
 
    while(1)
    {
        if (PIND & (1 << PD1)) {    //  is switch open?
            PORTB &= ~(1 << PB2);   // switch is open, switch LED off
        }
        else {
            PORTD |= (1 << PD2);    //  switch is closed, switch LED on
        }
            if (PINB & (1 << PD2)) {  // is switch open?
                PORTB &= ~(1 << PB2);   // switch is open, switch LED off
            }
            else {
                _delay_ms(60);
                PORTD |= (1 << PD2);    // switch is closed, switch LED on
            }
                if (PIND & (1 << PD3)) {  // is switch open?
                    PORTB &= ~(1 << PB3);   // switch is open, switch LED off
                }
                else {
                    PORTD |= (1 << PD3);    // switch is closed, switch LED on
                }
                if (PIND & (1 << PD4)) {  // is switch open?
                            PORTB |=(1 << PB2);   // switch is closed, LED off
                        }
                else {
                            PORTB |= (1 << PB3);    // switch is closed, LED off
                        }
                    }
                }
Добавлено через 1 час 0 минут
второи вариант кода
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>
 
 
int main(void)
{
    // output pin
    DDRB &= ~((1 << PB2) | (1 << PB3));     // LED on pin 11 (PD6)
    // input pin
    DDRD |= ((1 << PD2) | (1 << PD3) | (1 << PD4)|(1 << PD5));    // switch on pin 9 (PD5)
    DDRD &= ~((1 << PD2) | (1 << PD3) | (1 << PD4)|(1 << PD5));
    PORTD |= ((1 << PD2) | (1 << PD3) | (1 << PD4)| (1 << PD4));    //
    
    while(1)
    {
        if (PIND  & (1 << PD2)) {    // is switch open?
            PORTB |= (1 << PB2);    // switch is closed,
        
        }
        else {
            PORTB &= ~(1 << PB2);   // switch is open, switch
        }
        _delay_ms(50);
        if (PIND  & (1 << PD3)) {    // is switch open?
            PORTB |= (1 << PB2);    // switch is closed,
        
        }
        else {
            PORTB &= ~(1 << PB2);   // switch is open, switch
        }
        if (PIND & (1 << PD4)) {    // is switch open?
            PORTB |= (1 << PB3);    // switch is closed,
        }
        else {
            PORTB &= ~(1 << PB3);   // switch is open, switch
            }
        if (PIND & (1 << PD5))  {    // is switch open?
            PORTB |= (1 << PB2) | (1 << PB3);   // switch is
        }
        else {
            PORTB &= ~((1 << PB2) | (1 << PB3));    // switch
        }
    }
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2014, 19:09
Ответы с готовыми решениями:

Управление светодиодами (ASM, ATmega8515)
Есть задание Разработать алгоритм и управляющую программу на Ассемблере МК ATmega 8515, в которой...

ATmega16 (VMLAB). Управление светодиодами
Написать программу в AVR, что бы работала в VMLAB: устройство с 4 светодиодами тактовой частотой...

Управление светодиодами кнопками в ASM для AVR
Есть программа на ассемблере для AVR. К порту C присоединены в протеусе одна кнопка и один...

Управление 10 светодиодами с минимальным кол-вом портов
Привет, Возникла такая задача - нужно управлять 10 светодиодами с отведенным минимальным...

ATtiny2313. Управление светодиодом
Пожалуйста помогите доделать программу. нужно, что бы &quot; Разработать устройство управления одним...

7
pyzhman
796 / 488 / 68
Регистрация: 15.05.2012
Сообщений: 2,774
20.11.2014, 09:07 2
Цитата Сообщение от Vendet Посмотреть сообщение
горит Led PB2, но медленнеи
Это как?
0
Vendet
0 / 0 / 0
Регистрация: 27.04.2014
Сообщений: 4
20.11.2014, 17:58  [ТС] 3
pyzhman, загорается постепенно.
Да, у меня вот такая плата:
0
Миниатюры
Управление светодиодами на ATtiny2313  
pyzhman
796 / 488 / 68
Регистрация: 15.05.2012
Сообщений: 2,774
20.11.2014, 19:12 4
Цитата Сообщение от Vendet Посмотреть сообщение
при нажатии кнопки 4 горит оба LED PB2 и PB3 гаснут.
А это как понимать?
И фото стенда - ни о чём. Схема где?
0
raxp
20.11.2014, 19:43
  #5

Не по теме:

...лечу по фотографии :D

0
Vendet
0 / 0 / 0
Регистрация: 27.04.2014
Сообщений: 4
23.11.2014, 12:41  [ТС] 6
pyzhman, схемы нет, есть только задание.

Нужно написать программу под ATtiny 2313,
где при нажатии кнопки 1 горит Led PB2
при нажатии кнопки 2 медленно загарается Led PB2
при нажатии кнопки 3 горит Led PB3
при нажатии кнопки 4 оба LED PB2 и PB3 гаснут.
0
pyzhman
796 / 488 / 68
Регистрация: 15.05.2012
Сообщений: 2,774
23.11.2014, 13:19 7
Для зажигания/тушения применить триггеры. Для медленного зажигания ШИМ.
0
korsaj
152 / 119 / 11
Регистрация: 16.08.2013
Сообщений: 576
27.11.2014, 16:22 8
В методичке все есть...
0
27.11.2014, 16:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2014, 16:22

Управление шаговым двигателем на Attiny2313
нужен программный код на C и С++ Короче имеются две кнопки(влево и вправо).При нажатии на них...

Управление реле с пульта на ATtiny2313
Всем привет. Ребят подскажите, где можно взять или хотя бы примерный код для управления реле с...

Attiny2313. Управление светодиодами: глюк
Только начал кое-как изучать микропроцессоры и знаю совсем немного. Задание такое: нужно, чтобы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru