Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/14: Рейтинг темы: голосов - 14, средняя оценка - 5.00
SENDEJER
5 / 5 / 3
Регистрация: 22.05.2013
Сообщений: 386
1

Пояснение команд в AVR AtTiny 2313

21.10.2013, 00:38. Просмотров 2637. Ответов 4
Метки нет (Все метки)

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
/*
 * AVRGCC2.c
 *
 * Created: 29.09.2013 15:58:15
 *  Author: SENDEJER
 */ 
 
#define F_CPU 4000000UL // задаем тактовую частоту (кварца) нужно для работы задержки 
//(Attiny2313 есть встроенный тактовый генератор(4/8 МГц/128 кГц).)
 
#include <avr/io.h> //присоединяет к основному тексту программы стандартный текст описания для МК 2313
 
#include <util/delay.h> //Библиотека обработки задержек delay
 
void main (void) // функция не возвращает никакого значения 
//(main- набор команд настройки системы + заготовка главного цикла программы)
 
{       
        
    DDRB=0xFF;   // на вход присваевается FF=11111111 КНОПКА
    
    DDRD=0x00;   // на выход 00000000
    
                while(1) //бесконечный цикл (выполняется пока "условие истинно")
    {
    if (PORTD==PIND)
            
             PORTB=0xFF;  // инициализация порта В
             
             _delay_ms(17); // задержка 777 мс
             
             PORTB=0x00; // зажечь светодиод
             
             _delay_ms(17);
             
    };
};
Добавлено через 28 секунд
Помогите пояснить / исправить строчки команд
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2013, 00:38
Ответы с готовыми решениями:

ATtiny 2313
Добрый день, возникли трудности с работой с МК. Это мой первый практический...

Термостат на ATTiny 2313
Собираю термостат в Протеусе на Attiny 2313. Имеется код на ассемблере...

AtTiny 2313, прерывания
Доброго времени суток. Решил освоить программирование МК и сразу же столкнулся...

Attiny 2313 не прошивается
Attiny 2313 пытаюсь прошить через arduino nano но ни как не могу подключил тут...

Использование таймера в ATTiny 2313
#include &lt;avr/io.h&gt; #include &lt;avr/interrupt.h&gt; unsigned char rab;...

4
Cpibreq
1 / 1 / 0
Регистрация: 01.08.2013
Сообщений: 9
21.10.2013, 13:12 2
Что Вы имеете в виду под "исправить строчки команд"? Сделать их соответствующими комментариям? Или оставить команды, но изменить комментарии? Во втором случае будет так:
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
/*
 * AVRGCC2.c
 *
 * Created: 29.09.2013 15:58:15
 *  Author: SENDEJER
 */ 
 
#define F_CPU 4000000UL // задаем тактовую частоту (кварца) нужно для работы задержки 
//(Attiny2313 есть встроенный тактовый генератор(4/8 МГц/128 кГц).)
 
#include <avr/io.h> //присоединяет к основному тексту программы стандартный текст описания для МК 2313
 
#include <util/delay.h> //Библиотека обработки задержек delay
 
void main (void) // функция не возвращает никакого значения 
//(main- набор команд настройки системы + заготовка главного цикла программы)
 
{       
        
    DDRB=0xFF;   // все выводы порта B на выход, здесь светодиод
    
    DDRD=0x00;   // все выводы порта D на вход, здесь кнопка
    
                while(1) //бесконечный цикл (выполняется пока "условие истинно")
    {
    if (PORTD==PIND)
            
             PORTB=0xFF;  // погасить светодиод
             
             _delay_ms(17); // задержка 17 мс
             
             PORTB=0x00; // зажечь светодиод
             
             _delay_ms(17) // задержка 17 мс
             
    };
};
По поводу длительности задержки не уверен, т.к. не знаю, как работает функция delay и зависят ли ее значения от частоты тактирования. Можете проверить в симуляторе.
1
Voland_
1656 / 1002 / 96
Регистрация: 04.01.2010
Сообщений: 3,328
22.10.2013, 10:49 3
Цитата Сообщение от SENDEJER Посмотреть сообщение
Помогите пояснить / исправить строчки команд
Замечательная просьба ). ТС, вы хотя бы объясните, какую задачу вы пытались решить.
Единственное, чего я не понял в коде вообще, это строчка:
C
1
if (PORTD==PIND)
- с учетом того, что на старте у нас НЕ инициализируется состояние порта, значит порты будут в Z-state и болтаться как черте что (схемы-то нет), так и программа выполняться будет точно также хаотично.
0
SENDEJER
5 / 5 / 3
Регистрация: 22.05.2013
Сообщений: 386
22.10.2013, 18:06  [ТС] 4
В архиве схема. Задача была такова, что бы создать динамическую индикацию с часовой задержкой. Вроде все сделал) все работает вот только код пояснить не могу нормально.

Большущее спасибо!
0
Вложения
Тип файла: rar 3.rar (11.7 Кб, 19 просмотров)
Voland_
1656 / 1002 / 96
Регистрация: 04.01.2010
Сообщений: 3,328
23.10.2013, 10:58 5
Цитата Сообщение от Cpibreq Посмотреть сообщение

Не по теме:

if (PORTD==PIND)
PORTB=0xFF; *// погасить светодиод
_delay_ms(17); // задержка 17 мс
PORTB=0x00; // зажечь светодиод
_delay_ms(17) // задержка 17 мс
};

и это, по-вашему, динамическая индикация? ) В таком случае комментарии в тесте программы вас точно не спасут.
0
23.10.2013, 10:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.10.2013, 10:58

ATtiny 2313. Контроль освещения
Требуется написать программу на Assembler или на С++ Программа не для рабочего...

Работа с UART (Си, ATtiny 2313)
Дорогие формчане и знатаки по микроконтролёрам я Новичок в этом деле. У меня...

Attiny 2313 простая задачка с индикацией
Задача состоит вот в чем: На основе микроконтроллера Atmel Atiny2313...


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

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

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