Ассемблер (ASM) для AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Pink-Pank
Опытный кот
Сообщения: 721
Зарегистрирован: Ср июн 11, 2014 09:43:13
Откуда: США
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Pink-Pank »

Ну, тогда где-то лишний rcall или забыли ret. Еще как вариант - обращаетесь к регистрам периферии за диапазоном 0x5F при помощи команд in/out. В результате попадаете на регистры стека. Где-то тут на форуме проскакивала такая ошибка.
Fucking static initialization order fiasco
Реклама
akl
Друг Кота
Сообщения: 4445
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение akl »

СКАЗОЧНИК писал(а):Может кому не лень будет, глянет в АВРстудии проект мой...Однако, после выхода из подпрограммы инициализации дисплея (по ret) попадает не туда, откуда начал... Уже исправил одну проблему, когда перекидывало по ret выше на два адреса, а теперь НИЖЕ перекидывает...
Если это вся программа, то работает правильно.
Спойлер

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

	.include "tn2313def.inc"	


; ============
; ТИП МИКРОКОНТРОЛЛЕРА (.device)
; ============

	.device ATtiny2313
 
; =================
; ОБЪЯВЛЕНИЯ И КОНСТАНТЫ (.def, .equ)
; =================
 
	.def temp = R16	
	
; ====
; МАССИВЫ И Т.Д. (.eseg) EEPROM (.db, .dw)
; ====
	
	.eseg

; ******************************
; НАЧАЛО ПРОГРАММЫ (.cseg) FLASH
; ******************************
	
	.cseg

; ------------------
; ВЕКТОРЫ ПРЕРЫВАНИЙ
; ------------------
	
	rjmp RESET 			; Reset Handler
 	rjmp INT_0 			; External Interrupt0 Handler
 	rjmp INT_1 			; External Interrupt1 Handler
 	rjmp TIM1_CAPT 		; Timer1 Capture Handler
 	rjmp TIM1_COMPA 	; Timer1 CompareA Handler
 	rjmp TIM1_OVF 		; Timer1 Overflow Handler
	rjmp TIM0_OVF 		; Timer0 Overflow Handler
	rjmp USART0_RXC 	; USART0 RX Complete Handler
	rjmp USART0_DRE 	; USART0,UDR Empty Handler
	rjmp USART0_TXC 	; USART0 TX Complete Handler
	rjmp ANA_COMP 		; Analog Comparator Handler
	rjmp PCINT 			; Pin Change Interrupt
	rjmp TIMER1_COMPB 	; Timer1 Compare B Handler
	rjmp TIMER0_COMPA 	; Timer0 Compare A Handler
	rjmp TIMER0_COMPB 	; Timer0 Compare B Handler
	rjmp USI_START 		; USI Start Handler
	rjmp USI_OVERFLOW 	; USI Overflow Handler
	rjmp EE_READY 		; EEPROM Ready Handler
	rjmp WDT_OVERFLOW 	; Watchdog Overflow Handler
	
	
	;RESET 			; Reset Handler
 	INT_0: 			; External Interrupt0 Handler
 	INT_1:			; External Interrupt1 Handler
 	TIM1_CAPT: 		; Timer1 Capture Handler
 	TIM1_COMPA: 	; Timer1 CompareA Handler
 	TIM1_OVF: 		; Timer1 Overflow Handler
	TIM0_OVF: 		; Timer0 Overflow Handler
	USART0_RXC: 	; USART0 RX Complete Handler
	USART0_DRE: 	; USART0,UDR Empty Handler
	USART0_TXC: 	; USART0 TX Complete Handler
	ANA_COMP: 		; Analog Comparator Handler
	PCINT: 			; Pin Change Interrupt
	TIMER1_COMPB: 	; Timer1 Compare B Handler
	TIMER0_COMPA: 	; Timer0 Compare A Handler исправил в ТН2313ДЕФ.ИНК
	TIMER0_COMPB: 	; Timer0 Compare B Handler исправил в ТН2313ДЕФ.ИНК
	USI_START: 		; USI Start Handler
	USI_OVERFLOW: 	; USI Overflow Handler
	EE_READY: 		; EEPROM Ready Handler
	WDT_OVERFLOW: 	; Watchdog Overflow Handler
	
	reti			; Выход из прерываний, которые не используются

; ----------------------
; ОБРАБОТЧИКИ ПРЕРЫВАНИЙ
; ----------------------

 
			
; **************************************************************************************************
; ИНИЦИАЛИЗАЦИЯ МК (логическое начало основной программы) ******************************************
; **************************************************************************************************

;           --------- конфигурация портов -----------------------------------------------           

	Reset:	
			
;			---------- начальные значения переменных, массивы ---------------------------
			  
		
;           ----- конфигурация прерываний, стека, аналогового компаратора, таймеров -----

			ldi temp, 0xFF			; Сбросить флаги внешних прерываний 
			out EIFR, temp			
			
			ldi temp, RAMEND		; Загрузка указателя стека
			out SPL, temp

			ldi temp, 1<<ACD 		; Выключаем аналоговый компаратор (для меньшего потребления)
			out ACSR, temp 					
			
		
		rcall	INIT_LCD

		ldi			R18, 0x34		
		rcall	SYMBOL

;ADDRESS 1,2

	;		SYMBOL	0x33
	;		SYMBOL	0x37
	;		SYMBOL	0x36
	;		SYMBOL	0x31
;ADDRESS 1,8
	;		SYMBOL	0x4d
	;		SYMBOL	0x48		
	;		SYMBOL	0x7a

;ADDRESS 1,12
	;		SYMBOL	0x6b
	;		SYMBOL	0x48
	;		SYMBOL	0x7a


;ADDRESS 2,2
	;		SYMBOL	0x34
	;		SYMBOL	0x33
	;		SYMBOL	0x37
	;		SYMBOL	0x36
	;		SYMBOL	0x31
;ADDRESS 2,8
	;		SYMBOL	0x4d
	;		SYMBOL	0xa1		
	;		SYMBOL	0xe5
;ADDRESS 2,12
;
;			SYMBOL	0xba
;			SYMBOL	0xa1
;			SYMBOL	0xe5
		;	SYMBOL	0x70
		;	SYMBOL	0xc3
		;	SYMBOL	0xb3
		;	SYMBOL	0x61
		;	SYMBOL	0xb9
;ADDRESS 2,12	

		            			       	
;           ---------- разрешение прерываний --------------------------------------------			

			sei						; Разрешаем прерывания	

; *******************************************************************************************************************
; ОСНОВНАЯ ПРОГРАММА (основной цикл) ********************************************************************************
; *******************************************************************************************************************

	Start:	
									
	rjmp Start	; Конец программы, переход на начало


; ***************************************************************************************************
; ПОДПРОГРАММЫ **************************************************************************************
; ***************************************************************************************************
;SYMBOL:
 ;      OUT   PORTB,R18
;вывод старшей тетрады
   ;    SWAP R18
  ;     OUT   PORTB,R18
;вывод младшей тетрады
	;RET
;	ret
;INIT_LCD:
;	ret


;*****************************************************************************************************************************	
			.equ	DB7port = PORTB		; Указать порт,к которому подключен вывод DB7 дисплея
			.equ	DB7ddr	= DDRB		; Указать регистр напраавления порта, к которому подключен DB7 дисплея
			.equ	DB7_PIN	= PINB
			.equ	DB7pin	= 1			; Указать номер бита порта, к которому подключен DB7 дисплея

			.equ	DB6port = PORTB
			.equ	DB6ddr	= DDRB
			.equ	DB6_PIN	= PINB
			.equ	DB6pin  = 4

			.equ	DB5port = PORTB
			.equ	DB5ddr	= DDRB		; Аналогично (см. выше)
			.equ	DB5_PIN	= PINB
			.equ	DB5pin  = 2

			.equ	DB4port = PORTB
			.equ	DB4ddr	= DDRB
			.equ	DB4_PIN	= PINB
			.equ	DB4pin  = 3

			.equ	RSport  = PORTD
			.equ	RSddr	= DDRD
			.equ	RSpin   = 6

			.equ	R_Wport	= PORTD
			.equ	R_Wddr	= DDRD
			.equ	R_Wpin	= 5

			.equ	Eport	= PORTB
			.equ	Eddr	= DDRB
			.equ	Epin	= 0

			.equ	SPEED	= 4
;****************************************************************************************************************************

	INIT_LCD:

		sbi	RSddr, RSpin
		cbi	RSport, RSpin

		sbi R_Wddr, R_Wpin
		cbi R_Wport, R_Wpin			; Запись в дисплей RW

		sbi Eddr, Epin
		cbi Eport, Epin				; Опустили строб E		
		
		rcall	OUT_PORT 			; 							
	
		rcall	CLR_PORT
			
		rcall 	DELAY_13107			; Первая задержка в районе более 20 мс (после включения питания)
		rcall 	DELAY_13107
		rcall 	DELAY_13107
		rcall 	DELAY_13107
		
		;-----------------------------------------------------	
																			
		ldi		R18,	0b00110000	; Команда установки 8 линий для инициализации (первый раз) 
		
		rcall	DB_LINE				; Вызываем подпрограмму, которая отправит команду (тетраду)

		rcall	STROBE

		rcall 	DELAY_13107			; Вторая задержка больше 5 мс

		;-----------------------------------------------------
		
		rcall	STROBE				; Команду на выходе никто не менял, значит просто строб

		rcall 	DELAY_102			; Задержка в 100 мкс

		;-----------------------------------------------------
	
		rcall	STROBE

		rcall 	DELAY_102			; Задержка в 100 мкс

		;-----------------------------------------------------
		cbi	RSport, RSpin		; Идет команда

		ldi		R18,	0b00100000	; Команда установки 4 линии для инициализации (четвертый раз)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
		
		rcall	DB_LINE				; Вызываем подпрограмму, которая отправит команду (тетраду)

		rcall	STROBE

		rcall 	DELAY_102			; Задержка в 100 мкс

		;---------------------------------------------------------------------------------------------
		cbi	RSport, RSpin		; Идет команда
			
		ldi		R18,	0b00101000	; Команда установки 4 линии и две строки (наконец-то прошла и вторая тетрада) (уже нормалный порядок битов в команде)
		rcall	CMD_WR				; Вызываем подпрограмму отправки команды
		
		ldi		R18,	0b00001000	; Выключение дисплея
		rcall	CMD_WR				; Вызываем подпрограмму отправки команды
	
		ldi		R18,	0b00000001	; Очистка дисплея
		rcall	CMD_WR				; Вызываем подпрограмму отправки команды
		rcall 	DELAY_13107
		
		ldi		R18,	0b00000110	; Установка режима вывода данных (сдвиг курсора вправо)
		rcall	CMD_WR				; Вызываем подпрограмму отправки команды
		
		ldi		R18,	0b00001101	; Включаем дисплей, курсор в виде квадрата
		rcall	CMD_WR				; Вызываем подпрограмму отправки команды

	ret

;==============	

	STROBE:

		sbi Eport, Epin		; Подняли строб
			
			rcall DELAY		; Задержка более 500 нс

		cbi Eport, Epin		; Опустили строб

			rcall DELAY		; Задержка более 500 нс
	ret

;----------------------------------------------

	SYMBOL:					; Символ (код символа)
			
		;ldi		R18,	@0
		rcall	DATA_WR
		
	;.ENDM
	ret

;----------------------------------------------

;	.MACRO	ADDRESS					; Адерс в формате Адрес (х,у) , где х - строка (1 или 2), у - позиция в строке (0...16)
		
;			ldi R18, @0

;			cpi R18, 1

;			breq RAVNO				; Перейти, если равно, т.е. выбрана 1 строка

;				ldi R18, (192+@1)	; А если выбрана 2 строка, то прибавляем к ее адресу (и команде) позицию
			
;				rjmp W
			
;		RAVNO:	ldi R18, (128+@1)	; А если первая строка, то прибавляем к ее команде позиции

;		W:	rcall CMD_WR

;	.ENDM
	
;*************************************************************************************************************

; ПРОЦЕДУРА записи байта команды в дисплей

	CMD_WR:

	;	cli
		;	rcall	BUSY			; Ждем готовности
			cbi	RSport, RSpin		; Идет команда
			rjmp	WRITE

;-----------------------------------------------------------------------------------------

; ПРОЦЕДУРА записи байта данных в дисплей

	DATA_WR:	

	;	cli
		;	rcall	BUSY			; Ждем готовности
		sbi	RSport, RSpin		; Идут данные		

;-----------------------------------------------------------------------------------------

	WRITE:

			rcall	DB_LINE				; Вызываем подпрограмму, которая выведет значение тетрады в порт(ы)

			rcall	STROBE

					swap	R18			; Перевернем тетрады местами 

					nop
		
			rcall	DB_LINE				; 

			rcall	STROBE

			rcall	DELAY_102
	;sei
	ret

;===================

	DB_LINE:							; Выводим тетраду в линии дисплея
				rcall CLR_PORT
				
				sbrc 	R18, 4 			; Пропустить слудующую, еслли бит сброшен
				sbi		DB4port, DB4pin	; Ставим бит
				sbrc 	R18, 5 			; Пропустить слудующую, еслли бит сброшен
				sbi		DB5port, DB5pin	; Ставим бит
				sbrc 	R18, 6 			; Пропустить слудующую, еслли бит сброшен
				sbi		DB6port, DB6pin	; Ставим бит
				sbrc 	R18, 7 			; Пропустить слудующую, еслли бит сброшен
				sbi		DB7port, DB7pin	; Ставим бит			
	ret

;=====================

;	BUSY:								; Ожидание флага занятости контроллера дисплея
;			;	RCALL	PORT_IN			; Порты на вход
;
;				cbi	RSport, RSpin				; Идет Команда!
;				sbi	R_Wport, R_Wpin				; Чтение!
;			
;	BusyLoop:	sbi 	Eport, Epin			; Подняли строб
;				rcall 	DELAY				; Задержка более 500 нс
;				clr R18						; Очистить переменную
;			;---------------------------------------------
;			
;				sbic 	DB7_PIN, DB7pin		; Пропустить следующую команду, если пин очищен = 0
;					rjmp	S1
;				ldi R18, 0x00				; Если очищен, делаем нулями
;					rjmp	Z1				; и выходим
;				S1: ldi R18, 0xFF			; А если не очищен, то делаем R17 единиц							
;			;----------------------------------------------
;			Z1:	cbi Eport, Epin				; Опустили строб
;				rcall DELAY					; Задержка более 500 нс
;
;				sbi 	Eport, Epin			; Подняли строб (Дальше строб идет, но вторую тетраду мы не читаем,на нее пофиг)
;				rcall 	DELAY				; Задержка более 500 нс
;
;				cbi Eport, Epin				; Опустили строб
;				rcall DELAY					; Задержка более 500 нс
;
;				cpi	R18,0x00			; сравниваем флаг = 0? Дисплей  свободен?
;				brne	BusyLoop		; Если нет, то переход
;	ret
;------------------------------------------------------------------------------		

	DELAY_102:
		
		ldi R16, 255			; Задержка ~102,4 mkсек 
		ldi R17, 1			
				
		Loop2: 	subi R16, 1		
				sbci R17, 0
				brcc Loop2		
	ret

;----------------------------------------------

	DELAY_13107:
		
		ldi R16, 255			; Задержка ~13.107 mсек 
		ldi R17, 255	
			
	
		Loop1: 	subi R16, 1		
				sbci R17, 0
				brcc Loop1	
	ret

;-----------------------------------------------------------

	DELAY:

			ldi		R16, SPEED

	loop:	dec		R16
			brne	loop

	ret

;------------------------------------------------------------------

CLR_PORT:
			cbi DB4port, DB4pin
			cbi DB5port, DB5pin
			cbi DB6port, DB6pin
			cbi DB7port, DB7pin
ret

;---------------------------------------------------------------

OUT_PORT:
			sbi	DB4ddr, DB4pin				; Задаем направление порта на ВЫХОД
			sbi	DB5ddr, DB5pin
			sbi	DB6ddr, DB6pin
			sbi	DB7ddr, DB7pin		
ret
;.include "LCD4.inc"	
.exit
СпойлерСтудия 4.19Изображение
STACK_1.GIF
Реклама
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение СКАЗОЧНИК »

:dont_know: Ниче не понимаю... У меня студия глючила что ли??? Реально задолбался отлаживать... Всегда после инициализации дисплея выходила сразу на разрешение прерываний. Пропускала вывод символа... :roll: Психанул вчера закрыл проект. Сегодня открыл проверил, точно.. правильно... :oops:
Прошу прощения, что отнял у вас время. :) :beer:
Станислав
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Gudd-Head »

Бывает, бывает что студия дико глючит.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение СКАЗОЧНИК »

Так вроде же официальная бесплатная среда разработки для АВР?! :shock:
Первый раз столкнулся просто. (не сильно часто получается новые программулины выдумывать). :)))
Станислав
Реклама
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Gudd-Head »

СКАЗОЧНИК писал(а):Так вроде же официальная бесплатная среда разработки для АВР?!
Ну и что? :) :tea:
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение СКАЗОЧНИК »

Должны поддерживать свое детище и фиксить ошибки своевременно. )))) 8)
Станислав
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Gudd-Head »

Дык, поддерживают — качайте 6-ю :)
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение СКАЗОЧНИК »

А какую скачивать? там что-то много всего...
Станислав
akl
Друг Кота
Сообщения: 4445
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение akl »

По мне довольно стабильная 4.19 build 730. Пока ещё можно найти здесь
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение СКАЗОЧНИК »

Уже 6.2 хочу. )) только не знаю какую. Просто 6.2 или 6.2 виз НЕТ?
Станислав
akl
Друг Кота
Сообщения: 4445
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение akl »

Шестёрка не понравилась. Херь какая-то монстрообразная.
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6312
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Jack_A »

akl писал(а):По мне довольно стабильная 4.19 build 730.
Перед тем, как от нее отказаться и взяться за следующую, Атмели ее прилично вылизали :) В ранних релизах, помню, таймеры не работали.
Нормальная среда, если не гнаться за суперновинками.
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение СКАЗОЧНИК »

Так все таки... За какую версию то??? .я уже скачал на всякий случай 4.19. Надо 6.2 качать нет?
Станислав
Аватара пользователя
afz
Опытный кот
Сообщения: 744
Зарегистрирован: Сб дек 22, 2012 08:17:42
Откуда: Караганда, Казахстан

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение afz »

СКАЗОЧНИК писал(а):Так все таки... За какую версию то??? .я уже скачал на всякий случай 4.19. Надо 6.2 качать нет?
Если у Вас нет чипов, которые не поддерживаются студией 4.19 (то есть сильно новых), то 4.19 - самое то! Если же Вы соберетесь работать с этими суперновыми МК, которые студия 4.19 не поддерживает, тогда придется качать и ставить 6.х
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение СКАЗОЧНИК »

Опять хренота какая-то... Добился, чтобы работала программа. Решил еще один файлик вложить, в котором прописать макросы. Так вот, цепляю его на самом верху программного кода, где все библиотеки (инклуды), а потом в программе пишу макрос. сволочь жалуется, что для него это неизвестная команда...
Станислав
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Gudd-Head »

Может, ошибка синтаксическая в названии команды? :)))
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Engineer_Keen »

С инклудами бывает такой косяк когда что-то в нем поправил (добавил функцию), а в другом файле делаешь например ее вызов и при компиляции вылезает такая ошибка. Дело в том, что исправленный файл почему-то студией не сохранился на диск (приходится перед компиляцией сохранять все вручную). Почему такое иногда выскакивает пока не просек :dont_know:
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение СКАЗОЧНИК »

Engineer_Keen писал(а):ошибка синтаксическая
Уже мильон раз проверил... :)))
Engineer_Keen писал(а):файл почему-то студией не сохранился на диск
Как это так? Я же в папке его смотрел. Он там есть. Я просто создал новый файл, в нем сделал макрос. Дал файлу название в "Сохранить как...", потом подключил его в главной программе. И в главной же программе делаю вызов макроса, а он мне хрен.. :kill:

Ептить!!! :kill: :evil: :facepalm: Пару раз презагрузил студию, пару раз сохранил. Теперь все работает... :kill:

Короче. Совет. В любой непонятной ситуации, ПЕРЕЗАГРУЖАЙ СТУДИЮ!! :))) :))) :)))
Станислав
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Engineer_Keen »

СКАЗОЧНИК писал(а):Дал файлу название в "Сохранить как..."
Бывает что файл сохранил, потом что-то в нем подредактировал, а изменения перед компиляцией автоматически не сохранились, как результат вылезает ошибка при попытке задействовать измененную часть программы, вот я о чем. Но у вас скорее всего проблема не в этом.
Глюкавая студия у вас какая-то, то код жрет, то с сохранением проблемы :dont_know:
Последний раз редактировалось Engineer_Keen Пт янв 16, 2015 12:44:23, всего редактировалось 1 раз.
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Ответить

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