Ср мар 21, 2018 22:59:12
модульное программирование и отладка сначала модулей, затем верхний уровень.
Ср мар 21, 2018 23:47:14
Чт мар 22, 2018 06:55:43
Чт мар 22, 2018 10:17:48
Чт мар 22, 2018 12:45:35
Если что, отладили в симуляторе
Чт мар 22, 2018 12:55:27
модульное программирование и отладка сначала модулей, затем верхний уровень.
Чт мар 22, 2018 21:33:41
Дальше остается только сама программа. Алгоритм работы самого устройства в целом.
Чт мар 22, 2018 22:17:04
Пт мар 23, 2018 05:44:30
Alexeyslav писал(а):...
Пт мар 23, 2018 09:09:04
Пт мар 23, 2018 09:29:51
Пт мар 23, 2018 17:22:55
;==============
; Main.asm file generated by New Project wizard
;
; Created: Чт авг 10 2017
; Processor: ATtiny13, 9.6 MHz
; SKDIV/8 programed
; Compiler: AVRASM (Proteus)
;
;==============
;==============
; DEFINITIONS
;==============
.def temp=r16
.def temp1=r17
.def temp2=r18
.def flag=r19 ; регистр пользовательских флагов
.def count0=r20 ; вспомогательный счетчик0 для отсчета времени
.def count1=r21 ; вспомогательный счетчик1 для отсчета времени
.def shift=r22
.equ on=0 ; признак нажатия кнопки
.equ tA=1 ; флаг прерывания А
.equ tB=2 ; флаг прерывания В
;==============
; VARIABLES
;==============
.dseg
readPin: .byte 1
.cseg
;==============
; RESET and INTERRUPT VECTORS
;==============
.org 0
rjmp RESET ; Reset Handler
.org 1
rjmp EXT_INT0 ; IRQ0 Handler
.org 2
rjmp PC_INT0 ; PCINT0 Handler
.org 3
rjmp TIM0_OVF ; Timer0 Overflow Handler
.org 4
rjmp EE_RDY ; EEPROM Ready Handler
.org 5
rjmp ANA_COMP ; Analog Comparator Handler
.org 6
rjmp TIM0_COMPA ; Timer0 CompareA Handler
.org 7
rjmp TIM0_COMPB ; Timer0 CompareB Handler
.org 8
rjmp WATCHDOG ; Watchdog Interrupt Handler
.org 9
rjmp ADC_conv ; ADC Conversion Handler
;RESET ; Reset Handler
EXT_INT0: ; IRQ0 Handler
PC_INT0: ; PCINT0 Handler
TIM0_OVF: ; Timer0 Overflow Handler
EE_RDY: ; EEPROM Ready Handler
ANA_COMP: ; Analog Comparator Handler
;TIM0_COMPA: ; Timer0 CompareA Handler
;TIM0_COMPB: ; Timer0 CompareB Handler
WATCHDOG: ; Watchdog Interrupt Handler
ADC_conv: ; ADC Conversion Handler
reti
RESET:
ldi r16,RAMEND ;инициализация стека
out SPL, r16
ldi temp,0b11111101 ;установка портов на выход
out DDRB,temp
clr temp ;сброс портов в лог "0"
out portb,temp
;==============
;инициализация таймеров
;==============
ldi temp,(1<<WGM00)|(1<<WGM01)|(1<<COM0A1) ; установка режима Fast PWM
out TCCR0A,temp
ldi temp,(1<<CS01)|(1<<CS00) ; предделитель таймера на 64 (9МГц/8/64=18750 Гц)
out TCCR0B,temp
ldi temp,(1<<OCIE0A) ; разрешить прерывание по совпадению A |(1<<OCIE0B)
out TIMSK0,temp
ldi temp,(1<<OCF0A)|(1<<OCF0B) ; Установка флагов прерываний
out TIFR0,temp
ldi temp,0 ; регистр сравнения А, ШИМ
out OCR0A,temp
ldi temp,250 ; регистр сравнения В, для таймера
out OCR0B,temp
ldi temp,0 ;очистка счетного регистра
out TCNT0,temp
sei
rjmp main
;==============
; Прерывания
;==============
TIM0_COMPA:
reti
TIM0_COMPB:
ldi temp,tB ; установить флаг события "сброс по переполнению B"
in temp,OCR0A ; загрузить значение регистра сравнения ШИМ в переменную
inc temp ; инкремент значения ШИМ
breq exit_compA ; если =0, значит достигли максимального значения, выходим
out OCR0A,temp ; иначе загрузить новое значение в ШИМ.
exit_compA:
reti
;==============
; CODE SEGMENT
;==============
main:
exit_main:
rjmp main
Пт мар 23, 2018 17:31:59
Пт мар 23, 2018 18:12:42
Пт мар 23, 2018 19:32:09
Пт мар 23, 2018 19:47:18
непрерывный сигнал либо 0 либо 1.
Кстати... В Кривом Рогу раньше неплохая контора по кассовой технике была - "резонанс" называется.
Неплохие аппараты делала...
Пт мар 23, 2018 19:55:00
Пт мар 23, 2018 20:12:17
Вт мар 27, 2018 13:31:22
Вт мар 27, 2018 14:26:21