0 / 0 / 0
Регистрация: 09.06.2024
Сообщений: 2

Секундомер с обратным отсчётом на ATmega32

09.06.2024, 13:45. Показов 873. Ответов 4

Студворк — интернет-сервис помощи студентам
Не могу понять как реализовать задачу: Исходное значение цифр на семисегментном индикаторе «9». Нажатием кнопки на входе РА0 запускается таймер с обратным счетом: через 1 секунду индицируется цифра «8» и т.д. до «0». При достижении «0» включается светодиод на выходе РВ0. Я наверстал что-то по интернет гайдам, но по итогу ни к чему не пришёл(
Работал в AVRке, если честно сложнее всего реализовать задержку в 1 секунду..

Assembler
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
.include "m32def.inc"
 
; Определение констант для таймера
.def counter = r16
.def temp = r17
.equ F_CPU = 16000000 ; Частота процессора 16 МГц
.equ DELAY = F_CPU/1024 ; Делитель для 1 секунды
 
.org 0x00
    rjmp init
 
.org $000E
    rjmp timer_interrupt
 
init:
    ; Инициализация стека
    ldi temp, low(RAMEND)
    out SPL, temp
    ldi temp, high(RAMEND)
    out SPH, temp
 
    ; Инициализация портов
    ldi temp, 0x00
    out DDRA, temp ; Порты A на ввод
 
   SBI   PORTA,0      ;включить подтяжку кнопки
 
    ldi temp, 0xFF
    out DDRC, temp ; Порты C на выводPINA 0 25
    ldi temp, 0xFF
    out DDRB, temp ; Порты B на вывод
 
; Начальное значение счетчика
    ldi counter, 9
    out PORTC, counter
 
start_timer:
    ; Настройка таймера для задержки в 1 секунду
   LDI   R22,HIGH(DELAY)
   OUT   OCR1AH,R22
   LDI   R22,LOW(DELAY)
   OUT   OCR1AL,R22
 
   LDI   R22,1<<OCIE1A
   OUT   TIMSK,R22
 
   LDI   R22,1<<WGM13|1<<WGM12   ;CTC
   OUT   TCCR1B,R22
 
;   SBR   R22,1<<CS10    ;F_CPU/1
   SBR   R22,1<<CS12|1<<CS10    ;F_CPU/1024
    ; Разрешить прерывания
    sei
main_loop:
    ; Проверка нажатия кнопки
    sbic PINA, 0
    rjmp main_loop
 
   CBI   PORTB,0      ;выключить светик
 
   OUT   TCCR1B,R22
   SBIS   PORTB,0
   RJMP   PC-1
 
    sbis PINA, 0
    rjmp    PC-1
 
   RJMP   INIT
;*************************************************
timer_interrupt:
; Уменьшение счетчика и обновление индикатора
    dec counter
    out PORTC, counter
   BRNE   OUT_TIME
; Включение светодиода
   sbi PORTB, 0
OUT_TIME:
    reti
.exit
Миниатюры
Секундомер с обратным отсчётом на ATmega32  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.06.2024, 13:45
Ответы с готовыми решениями:

Таймер с обратным отсчетом
Здравствуйте. Подскажите, пожалуйста, как реализовать обратный счет в коде: #define F_CPU 8000000L #include &lt;avr/io.h&gt; ...

Индикатор с обратным отсчетом на ATmega88PA
Здравствуйте. Имеется программа на Си в Atmel Studio 6, программатор и платка с микроконтроллером ATmega88PA (+datasheet), на которой есть...

Секундомер с обратным отсчётом
Здравствуйте. Надо создать секундомер с обратным отсчётом на 3 минуты, чтобы было видно оставшиеся количество минут и секунд Применил...

4
Модератор
Эксперт по электронике
8967 / 6733 / 921
Регистрация: 14.02.2011
Сообщений: 23,792
09.06.2024, 18:13
Цитата Сообщение от veent Посмотреть сообщение
если честно сложнее всего реализовать задержку в 1 секунду
создаешь таймер порывание допустим 0.01сек. вводишь переменную которую увеличиваешь на 1, при достижении 100 и будет одна секунда
0
0 / 0 / 0
Регистрация: 09.06.2024
Сообщений: 2
09.06.2024, 18:58  [ТС]
А как мне правильно настроить таймер? Когда я пытался реализовать это таким способом у меня цифры менялись с невероятной скоростью. У меня есть теория что я просто неправильно настроил прерывания, но вот как настроить эти самые прерывания я не знаю. Может есть вариант без использования прерываний или даже таймера?
0
1184 / 659 / 113
Регистрация: 15.05.2012
Сообщений: 4,074
10.06.2024, 13:19
Можно программный таймер организовать.
0
 Аватар для COKPOWEHEU
3969 / 2623 / 432
Регистрация: 09.09.2017
Сообщений: 11,691
10.06.2024, 14:15
Цитата Сообщение от veent Посмотреть сообщение
SBR R22,1<<CS12|1<<CS10 ;F_CPU/1024
Вы out сделать забылиА, вы его в другом месте делаете. С таким подходом нужно быть поосторожнее...

Добавлено через 33 минуты
Цитата Сообщение от veent Посмотреть сообщение
LDI R22,1<<WGM13|1<<WGM12 ;CTC
Неправильный режим. У вас 1100 - сравнение идет с ICR1, а надо 0100 - с OCR1A
Assembler
1
LDI R22,1<<WGM12 ;CTC
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.06.2024, 14:15
Помогаю со студенческими работами здесь

Реализовать секундомер с обратным отсчётом
Подскажите код секундомера, который будет отчитывать время назад, размер 2 года:

Таймер с обратным отсчетом
Здравствуйте! Нужен таймер с обратным отсчетом, чтобы он обновлялся, при переходе на другую страницу, или обновлении страницы. По окончании...

Таймер с обратным отсчетом
Нужно сделать таймер с интервалом 15 минут и, что бы обратный отсчет выводился в label

Счётчик с обратным отсчётом
Всем привет Нашёл скриптик счётчика который мне очень нужен))), а разобраться в нём немогу. Он как бы работает но там что то с кукой...

Таймер с обратным отсчетом
Всем привет. Нужен таймер с обратным отсчетом. К примеру есть кнопка, при нажатии на нее выполняется некоторое действие (php скрипт) и в...


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

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

Новые блоги и статьи
Blazor и контроллер сервопривода IoT Meadow Maple
Wired 11.07.2025
Я решил разобраться, как можно соединить современные веб-технологии с миром "железа". Интересная комбинация получилась из Blazor в качестве веб-интерфейса и микроконтроллера Meadow с его веб-сервером. . .
Генерация OpenQASM из кода Q#
EggHead 10.07.2025
Летом 2024-го я начал эксперименты с библиотекой Q# Bridge, и знаете что? Она оказалась просто находкой для тех, кто работает на стыке разных квантовых экосистем. Основная фишка этой библиотеки -. . .
Изучаем новый шаблон ИИ-чата .NET AI Chat Web App
stackOverflow 10.07.2025
В . NET появилось интересное обновление - новый шаблон ИИ-чата под названием . NET AI Chat Web App. Когда я впервые наткнулся на анонс этого шаблона, то сразу понял, что Microsoft наконец-то. . .
Результаты исследования от команды ARP (июль 2025 г.)
Programma_Boinc 10.07.2025
Результаты исследования от команды ARP (июль 2025 г. ) Африканский проект по дождям (ARP) World Community Grid снова запущен! Мы рады поделиться обновленной информацией о нашем прогрессе с осени. . .
Angular vs Svelte - что лучше?
Reangularity 09.07.2025
Сегодня рынок разделился на несколько четких категорий: тяжеловесы корпоративного уровня (Angular), гибкие универсалы (React), прогрессивные решения (Vue) и новая волна компилируемых фреймворков. . .
Code First и Database First в Entity Framework
UnmanagedCoder 09.07.2025
Entity Framework дает нам свободу выбора, предлагая как Code First, так и Database First подходы. Но эта свобода порождает вечный вопрос — какой подход выбрать? Entity Framework — это. . .
Как использовать Bluetooth-модуль HC-05 с Arduino
Wired 08.07.2025
Bluetooth - это технология, созданная чтобы заменить кабельные соединения. Обычно ее используют для связи небольших устройств: мобильных телефонов, ноутбуков, наушников и т. д. Работает она на частоте. . .
Руководство по структурам данных Python
AI_Generated 08.07.2025
Я отчетливо помню свои первые серьезные проекты на Python - я писал код, он работал, заказчики были относительно довольны. Но однажды мой наставник, взглянув на мою реализацию поиска по огромному. . .
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах
Programma_Boinc 08.07.2025
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах Опубликовано: 07. 07. 2025 Рубрика: Uncategorized Автор: AlexA Статья размещается на сайте с разрешения. . .
Раскрываем внутренние механики Android с помощью контекста и манифеста
mobDevWorks 07.07.2025
Каждый Android-разработчик сталкивается с Context и манифестом буквально в первый день работы. Но много ли мы задумываемся о том, что скрывается за этими обыденными элементами? Я, честно говоря,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru