разжуйте как работает или подправте прошивку авр

Обсуждаем контроллеры компании Atmel.
Ответить
lexx_l
Вымогатель припоя
Сообщения: 653
Зарегистрирован: Сб май 22, 2010 12:26:56
Откуда: Днепропетровск

разжуйте как работает или подправте прошивку авр

Сообщение lexx_l »

Здрасте. Вообщем собираю генератор синуса на атмеле вот этот http://sevzirfo.narod.ru/sin.htm Все работает но шаг перестройки - мозгами тронуться. Я хочу чтобы шаги были 10х 1000х и 10000х. Смотрю прошивку (исходник) и ниче понять немогу. Вообщем не програмер я. Прокоментируйте пожалуйста как она работате или может кто сразу подправит? там по схеме 2 кнопки на увеличение и 2 на уменьшение, но есть еще 2 свободных порта - поэтому хочу их задействовать и сделать по 3 кнопки в каждую сторону.

Заранее спасибо!
Реклама
borys
Держит паяльник хвостом
Сообщения: 927
Зарегистрирован: Вт сен 07, 2010 19:27:48
Откуда: Ташкент

Re: разжуйте как работает или подправте прошивку авр

Сообщение borys »

Программа написана на Алгоритм Билдер, а по нему специалистов немного. Попробуйте зайти на vrtp.ru , там
есть тема по Билдеру.
Реклама
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: разжуйте как работает или подправте прошивку авр

Сообщение Meteor »

Нажмите F9 задайте тип МК и тактовую частоту. Далее кнопкой F7 посмотрите как меняются значения в регитсрах.
Билдером отлаживать программки достаточно легко.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: разжуйте как работает или подправте прошивку авр

Сообщение ChipKiller »

Вообщем собираю генератор синуса на атмеле
... доступный для повторения вариант http://www.myplace.nu/avr/minidds/. Исходник на ассемблере.
Реклама
Эиком - электронные компоненты и радиодетали
lexx_l
Вымогатель припоя
Сообщения: 653
Зарегистрирован: Сб май 22, 2010 12:26:56
Откуда: Днепропетровск

Re: разжуйте как работает или подправте прошивку авр

Сообщение lexx_l »

Этот приколнее - не привязан к компу. только чтоб частоту выставить - можно и час играться...
Реклама
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: разжуйте как работает или подправте прошивку авр

Сообщение zero648 »

lexx_l писал(а):Здрасте. Вообщем собираю генератор синуса на атмеле вот этот http://sevzirfo.narod.ru/sin.htm Все работает но шаг перестройки - мозгами тронуться. Я хочу чтобы шаги были 10х 1000х и 10000х. Смотрю прошивку (исходник) и ниче понять немогу. Вообщем не програмер я. Прокоментируйте пожалуйста как она работате или может кто сразу подправит? там по схеме 2 кнопки на увеличение и 2 на уменьшение, но есть еще 2 свободных порта - поэтому хочу их задействовать и сделать по 3 кнопки в каждую сторону.

Заранее спасибо!
К нему бы еще экранчик приделать.
Реклама
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: разжуйте как работает или подправте прошивку авр

Сообщение pyzhman »

Дизассемблер:
Спойлер

Код: Выделить всё

.include	"2313DEF.INC"


.equ	freq_plus	=0
.equ	freq_plus10	=1
.equ	freq_minus	=2
.equ	freq_minus10	=3

.org	0

	RJMP    start
	RETI
	RETI
	RETI
	RETI
	RETI
	RETI
	RETI
	RETI
	RETI
	RETI


.DW	$8380        ;STD     Z+0,R24          Store indirect with displacement
.DW	$8986        ;LDD     R24,Z+22         Load indirect with displacement
.DW	$8F8C        ;STD     Y+28,R24         Store indirect with displacement
.DW	$9592        ;SWAP    R25              Swap nibbles
.DW	$9C98        ;MUL     R9,R8            Multiply unsigned
.DW	$A29F        ;STD     Y+39,R9          Store indirect with displacement
.DW	$A8A5        ;LDD     R10,Z+53         Load indirect with displacement
.DW	$AEAB        ;STD     Y+59,R10         Store indirect with displacement
.DW	$B3B0        ;IN      R27,0x10         In from I/O location
.DW	$B9B6        ;OUT     0x06,R27         Out to I/O location
.DW	$BFBC        ;OUT     0x3C,R27         Out to I/O location
.DW	$C4C1        ;RJMP    PC+0x04C2        Relative jump
.DW	$C9C7        ;RJMP    PC-0x0638        Relative jump
.DW	$CECC        ;RJMP    PC-0x0133        Relative jump
.DW	$D3D1        ;RCALL   PC+0x03D2        Relative call subroutine
.DW	$D8D5        ;RCALL   PC-0x072A        Relative call subroutine
.DW	$DCDA        ;RCALL   PC-0x0325        Relative call subroutine
.DW	$E0DE        ;LDI     R29,0x0E         Load immediate
.DW	$E4E2        ;LDI     R30,0x42         Load immediate
.DW	$E8E6        ;LDI     R30,0x86         Load immediate
.DW	$ECEA        ;LDI     R30,0xCA         Load immediate
.DW	$EFED        ;LDI     R30,0xFD         Load immediate
.DW	$F2F0        ;BRCS    PC-0x21          Branch if carry set
.DW	$F5F3        ;BRVC    PC+0x3F          Branch if overflow flag is cleared
.DW	$F7F6        ;BRTC    PC-0x01          Branch if T flag cleared
.DW	$F9F8        ;???                      Data or unknown opcode
.DW	$FBFA        ;???                      Data or unknown opcode
.DW	$FCFC        ;???                      Data or unknown opcode
.DW	$FEFD        ;???                      Data or unknown opcode
.DW	$FFFE        ;???                      Data or unknown opcode
.DW	$FFFF        ;???                      Data or unknown opcode
.DW	$FFFF        ;???                      Data or unknown opcode
.DW	$FFFF        ;???                      Data or unknown opcode
.DW	$FFFF        ;???                      Data or unknown opcode
.DW	$FFFF        ;???                      Data or unknown opcode
.DW	$FEFE        ;???                      Data or unknown opcode
.DW	$FCFD        ;???                      Data or unknown opcode
.DW	$FBFC        ;???                      Data or unknown opcode
.DW	$F9FA        ;???                      Data or unknown opcode
.DW	$F7F8        ;BRCC    PC-0x00          Branch if carry cleared
.DW	$F5F6        ;BRTC    PC+0x3F          Branch if T flag cleared
.DW	$F2F3        ;BRVS    PC-0x21          Branch if overflow flag is set
.DW	$EFF0        ;LDI     R31,0xF0         Load immediate
.DW	$ECED        ;LDI     R30,0xCD         Load immediate
.DW	$E8EA        ;LDI     R30,0x8A         Load immediate
.DW	$E4E6        ;LDI     R30,0x46         Load immediate
.DW	$E0E2        ;LDI     R30,0x02         Load immediate
.DW	$DCDE        ;RCALL   PC-0x0321        Relative call subroutine
.DW	$D8DA        ;RCALL   PC-0x0725        Relative call subroutine
.DW	$D3D5        ;RCALL   PC+0x03D6        Relative call subroutine
.DW	$CED1        ;RJMP    PC-0x012E        Relative jump
.DW	$C9CC        ;RJMP    PC-0x0633        Relative jump
.DW	$C4C7        ;RJMP    PC+0x04C8        Relative jump
.DW	$BFC1        ;OUT     0x31,R28         Out to I/O location
.DW	$B9BC        ;OUT     0x0C,R27         Out to I/O location
.DW	$B3B6        ;IN      R27,0x16         In from I/O location
.DW	$AEB0        ;STD     Z+56,R11         Store indirect with displacement
.DW	$A8AB        ;LDD     R10,Y+51         Load indirect with displacement
.DW	$A2A5        ;STD     Z+37,R10         Store indirect with displacement
.DW	$9C9F        ;MUL     R9,R15           Multiply unsigned
.DW	$9598        ;BREAK                    Break
.DW	$8F92        ;STD     Z+26,R25         Store indirect with displacement
.DW	$898C        ;LDD     R24,Y+20         Load indirect with displacement
.DW	$8386        ;STD     Z+6,R24          Store indirect with displacement
.DW	$7C80        ;ANDI    R24,0xC0         Logical AND with immediate
.DW	$7679        ;ANDI    R23,0x69         Logical AND with immediate
.DW	$7073        ;ANDI    R23,0x03         Logical AND with immediate
.DW	$6A6D        ;ORI     R22,0xAD         Logical OR with immediate
.DW	$6367        ;ORI     R22,0x37         Logical OR with immediate
.DW	$5D60        ;SUBI    R22,0xD0         Subtract immediate
.DW	$575A        ;SUBI    R21,0x7A         Subtract immediate
.DW	$5154        ;SUBI    R21,0x14         Subtract immediate
.DW	$4C4F        ;SBCI    R20,0xCF         Subtract immediate with carry
.DW	$4649        ;SBCI    R20,0x69         Subtract immediate with carry
.DW	$4043        ;SBCI    R20,0x03         Subtract immediate with carry
.DW	$3B3E        ;CPI     R19,0xBE         Compare with immediate
.DW	$3638        ;CPI     R19,0x68         Compare with immediate
.DW	$3133        ;CPI     R19,0x13         Compare with immediate
.DW	$2C2E        ;MOV     R2,R14           Copy register
.DW	$272A        ;EOR     R18,R26          Exclusive OR
.DW	$2325        ;AND     R18,R21          Logical AND
.DW	$1F21        ;ADC     R18,R17          Add with carry
.DW	$1B1D        ;SUB     R17,R29          Subtract without carry
.DW	$1719        ;CP      R17,R25          Compare
.DW	$1315        ;CPSE    R17,R21          Compare, skip if equal
.DW	$1012        ;CPSE    R1,R2            Compare, skip if equal
.DW	$0D0F        ;ADD     R16,R15          Add without carry
.DW	$0A0C        ;SBC     R0,R28           Subtract with carry
.DW	$0809        ;SBC     R0,R9            Subtract with carry
.DW	$0607        ;CPC     R0,R23           Compare with carry
.DW	$0405        ;CPC     R0,R5            Compare with carry
.DW	$0303        ;MULSU   R16,R19          Multiply signed with unsigned
.DW	$0102        ;MOVW    R0,R4            Copy register pair
.DW	$0001        ;???                      Data or unknown opcode
.DW	$0000        ;NOP                      No operation
.DW	$0000        ;NOP                      No operation
.DW	$0000        ;NOP                      No operation
.DW	$0000        ;NOP                      No operation
.DW	$0000        ;NOP                      No operation
.DW	$0101        ;MOVW    R0,R2            Copy register pair
.DW	$0302        ;MULSU   R16,R18          Multiply signed with unsigned
.DW	$0403        ;CPC     R0,R3            Compare with carry
.DW	$0605        ;CPC     R0,R21           Compare with carry
.DW	$0807        ;SBC     R0,R7            Subtract with carry
.DW	$0A09        ;SBC     R0,R25           Subtract with carry
.DW	$0D0C        ;ADD     R16,R12          Add without carry
.DW	$100F        ;CPSE    R0,R15           Compare, skip if equal
.DW	$1312        ;CPSE    R17,R18          Compare, skip if equal
.DW	$1715        ;CP      R17,R21          Compare
.DW	$1B19        ;SUB     R17,R25          Subtract without carry
.DW	$1F1D        ;ADC     R17,R29          Add with carry
.DW	$2321        ;AND     R18,R17          Logical AND
.DW	$2725        ;EOR     R18,R21          Exclusive OR
.DW	$2C2A        ;MOV     R2,R10           Copy register
.DW	$312E        ;CPI     R18,0x1E         Compare with immediate
.DW	$3633        ;CPI     R19,0x63         Compare with immediate
.DW	$3B38        ;CPI     R19,0xB8         Compare with immediate
.DW	$403E        ;SBCI    R19,0x0E         Subtract immediate with carry
.DW	$4643        ;SBCI    R20,0x63         Subtract immediate with carry
.DW	$4C49        ;SBCI    R20,0xC9         Subtract immediate with carry
.DW	$514F        ;SUBI    R20,0x1F         Subtract immediate
.DW	$5754        ;SUBI    R21,0x74         Subtract immediate
.DW	$5D5A        ;SUBI    R21,0xDA         Subtract immediate
.DW	$6360        ;ORI     R22,0x30         Logical OR with immediate
.DW	$6A67        ;ORI     R22,0xA7         Logical OR with immediate
.DW	$706D        ;ANDI    R22,0x0D         Logical AND with immediate
.DW	$7673        ;ANDI    R23,0x63         Logical AND with immediate
.DW	$7C79        ;ANDI    R23,0xC9         Logical AND with immediate





start:	LDI     R16,0xDF
	OUT     SPL,R16
	SER     R16
	OUT     DDRB,R16
	SER     R16
	OUT     PORTD,R16

	LDI     R30,0x16
	LDI     R31,0x00
	LDI     R24,0x64
	LDI     R25,0x64
	CLR     R26
	CLR     R28
	CLR     R29
	CLR     R16
	CLR     R17

loop:	SUBI    R30,0x16
	SBCI    R31,0x00

	ADD     R28,R24
	ADC     R29,R25
	ADC     R30,R26

	SUBI    R30,0xEA
	SBCI    R31,0xFF

	LPM
	OUT     PORTB,R0

	DEC     R16
	BRNE    loop
	DEC     R17
	BRNE    loop

	SBIS    PIND, freq_plus
	RJMP    m2
	SBIS    PIND, freq_plus10
	RJMP    m3
	SBIS    PIND, freq_minus
	RJMP    m4
	SBIS    PIND, freq_minus10
	RJMP    m5
	RJMP    loop

m2:	CPI     R24,0xFF
	BREQ    m6
	INC	R24
	RJMP    loop
m6:	INC     R24
	INC     R25
	RJMP    loop

m3:	CPI     R25,0xFF
	BREQ    m7
	INC     R25
	RJMP    loop
m7:	INC     R25
	INC     R26
	RJMP    loop

m4:	CPI     R24,0x00
	BREQ    m8
	DEC     R24
	RJMP    loop
m8:	DEC     R24
	DEC     R25
	RJMP    loop

m5:	CPI     R25,0x00
	BREQ    m9
	DEC     R25
	RJMP    loop
m9:	DEC     R25
	DEC     R26
	RJMP    loop 
Чес слово, лень клавиши давить, итак все просто до безобразия.
Docendo discimus
lexx_l
Вымогатель припоя
Сообщения: 653
Зарегистрирован: Сб май 22, 2010 12:26:56
Откуда: Днепропетровск

Re: разжуйте как работает или подправте прошивку авр

Сообщение lexx_l »

Действительно все супер-просто... только не для меня... вообщем опять непомогли... а экран будет - в одном корпусе с ним будет частотомер на пике!
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: разжуйте как работает или подправте прошивку авр

Сообщение pyzhman »

Так в этот же мк можно все запихнуть! Или на самом деле все так "не для меня"?
Docendo discimus
lexx_l
Вымогатель припоя
Сообщения: 653
Зарегистрирован: Сб май 22, 2010 12:26:56
Откуда: Днепропетровск

Re: разжуйте как работает или подправте прошивку авр

Сообщение lexx_l »

Нет. Делаю для себя. Просто я не програмист! Ну неразбираюсь я в этом. Вот и шью прошивки которые дают. К тому же было в налиличии 2 кристала и как раз нашел на одном из них частотомер (уже работает) а на другом ген. Засуну в один корпус и только тумблерочком буду переключать... или ген и метр.
lexx_l
Вымогатель припоя
Сообщения: 653
Зарегистрирован: Сб май 22, 2010 12:26:56
Откуда: Днепропетровск

Re: разжуйте как работает или подправте прошивку авр

Сообщение lexx_l »

Ну что? Так ни кто и непоможет?
otest
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Re: разжуйте как работает или подправте прошивку авр

Сообщение otest »

Не понятно что не понятно. 3 раза нажми на (х10) будет 1000 . 4р=10000 зачем ещё кнопки.
lexx_l
Вымогатель припоя
Сообщения: 653
Зарегистрирован: Сб май 22, 2010 12:26:56
Откуда: Днепропетровск

Re: разжуйте как работает или подправте прошивку авр

Сообщение lexx_l »

там шаг перестройки маленький. Если нажимаеш на 10х то частота неумножается на 10 а увеличивается на 4гц!!! чтоб настроить несколько килогерц - сума сойти можно.
Ответить

Вернуться в «AVR»