ATtiny 2313a-pu
подскажите какой include прописывать для ATtiny 2313a-pu в ассемблере в атмелСтудио?
Помощь - понятие растяжимое, как и за неё благодарность.
- Реклама
не знаю как в атмелстудии, но в AVR студии был "tn2313def.inc" (от букв маркировки после 2313 не зависит)
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
в атмел студии пишите просто
#include <avr/io.h>
и когда создаете проект там уже ета строка есть !
#include <avr/io.h>
и когда создаете проект там уже ета строка есть !
Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости
Это для Си, а для АСМ так и будет "tn2313def.inc"
Порой мне кажется, что я делаю какое-то дерьмо, но когда я вижу, что делают другие, то я чувствую себя гением...
В avrstudio 4.19 есть специальный файлик tn2313Adef.inc в каталоге AVR Tools -> AvrAssembler2 -> Appnotes. Так же и для остальных "Ашек".

- Реклама
дык вот именно что "ашка" не хочет работатьBOB51 писал(а):В avrstudio 4.19 есть специальный файлик tn2313Adef.inc в каталоге AVR Tools -> AvrAssembler2 -> Appnotes. Так же и для остальных "Ашек".
ATtiny 2313
меняю на ATtiny 2313а и вуаля... беда
что где и почему??? помогите, объясните пожалуйста!
Помощь - понятие растяжимое, как и за неё благодарность.
картинка мелкая не видно на что ругается...
Похоже на подключение нескольких инклудов или повторное переопределение имен.
Последний раз редактировалось zero648 Вт мар 11, 2014 18:39:32, всего редактировалось 1 раз.
как так то? я поменял только тиньку, код остался прежнимzero648 писал(а):Похоже на подключение нескольких инклудов
Помощь - понятие растяжимое, как и за неё благодарность.
Буду вечерком на домашнем ПК - скину заголовок под проект для ATtiny2313A под AVRstudio4.19 для ассемблера. 
как на счет показать весь код а не кусочки?
Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости
так я только начал. нету еще кода. кажется и не будет... раз такое делоkobzar писал(а):как на счет показать весь код а не кусочки?
Помощь - понятие растяжимое, как и за неё благодарность.
Спасибо. походу надо удалять ту. и ставить "Вашу" версию...BOB51 писал(а):Буду вечерком на домашнем ПК - скину заголовок под проект для ATtiny2313A под AVRstudio4.19 для ассемблера.
Помощь - понятие растяжимое, как и за неё благодарность.
в картинке я вижу просто 2313 без А...
Проверил, действительно странно работает...
UPD: Хотя такой пример вполне себе работает
При создании проекта, если выбрать тини без А, и подключить хидер с А будет та же самая ботва
Проверил, действительно странно работает...
UPD: Хотя такой пример вполне себе работает
если использовать хидер без А, то такие же ошибки как у вас....include <tn2313Adef.inc>
ldi R16,5
ldi R17,7
and R16,R17
out PORTB,R16
nop
При создании проекта, если выбрать тини без А, и подключить хидер с А будет та же самая ботва
Вот как образец - один из проектов с подставленным tn2313Adef.inc и перекомпилирован на данной установке - покопайтесь в настройках - мож чего проясниться (АВРстудио4.19).

Можно забить и оставить inc файл без буквы "A". Там разница в паре новых прерываний (по портам A и D) и новых регистрах энергосбережения. Если они нужны можно тупо в код их определения воткнуть прямо из inc файла для "A"...
Вот вся разница:
Вот вся разница:
Спойлер
Код: Выделить всё
; ***** I/O REGISTER DEFINITIONS *****************************************
.equ BODCR = 0x07
.equ PRR = 0x06
.equ PCMSK2 = 0x05
.equ PCMSK1 = 0x04
; ***** BIT DEFINITIONS **************************************************
; PCMSK2 - Pin Change Interrupt Mask Register 2
.equ PCINT11 = 0 ; Pin Change Interrupt Mask 11
.equ PCINT12 = 1 ; Pin Change Interrupt Mask 12
.equ PCINT13 = 2 ; Pin Change Interrupt Mask 13
.equ PCINT14 = 3 ; Pin Change Interrupt Mask 14
.equ PCINT15 = 4 ; Pin Change Interrupt Mask 15
.equ PCINT16 = 5 ; Pin Change Interrupt Mask 16
.equ PCINT17 = 6 ; Pin Change Interrupt Mask 17
; PCMSK1 - Pin Change Interrupt Mask Register 1
.equ PCINT8 = 0 ; Pin Change Interrupt Mask 8
.equ PCINT9 = 1 ; Pin Change Interrupt Mask 9
.equ PCINT10 = 2 ; Pin Change Interrupt Mask 10
; PRR - Power reduction register
.equ PRUSART = 0 ;
.equ PRUSI = 1 ;
.equ PRTIM0 = 2 ;
.equ PRTIM1 = 3 ;
; BODCR - BOD control register
.equ BPDSE = 0 ;
.equ BPDS = 1 ;
; ***** INTERRUPT VECTORS ************************************************
.equ PCIAaddr = 0x0013 ; Pin Change Interrupt Request A
.equ PCIDaddr = 0x0014 ; Pin Change Interrupt Request D
.equ INT_VECTORS_SIZE = 21 ; size in words
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Похоже "гвоздик" в правописании...
Это откуда взято:
.include <tn2313Adef.inc> ?
Ведь в стандартном описании требуется
.include "tn2313Adef.inc"
следить за синтаксисом надобно!
(а у ассемблера весьма много вариаций в зависимости от производителя компилятора)
Если я не ошибаюсь, то при создании проекта, вы выбираете устройство. И студия сама добавляет нужные инклуды к нему (они не отображаются в вашем коде, но они включены). И ничего лишнего добавлять не надо. пишите свой код. Если же вы что-то добавляете - у вас получается переопределение имен. так как получается, что вы дважды воткнули один и тот же инклуд.
Если вы не выбирали устройство при создании, то идете по пути Project>>Properties>>Device. и выбираете здесь. Удачи!
Если вы не выбирали устройство при создании, то идете по пути Project>>Properties>>Device. и выбираете здесь. Удачи!
и с <> и с "" работает. Дело видимо в том, что при создании проекта не то устройство выбрали. А подключать файлики надо. Я тоже думал что в этом дело, но после проверки вышло что не так 


