Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
ATmega AVR Отправка пакетов в enc28j60 Здравствуйте уважаемые форумчане. Хочу у Вас спросить про алгоритм отправки пакета в enc28j60. Автор вот этой статьи http://we.iosyitistromyss.ru/itistro-an ... 28j60.html предлагает вот такой алгоритм: void enc28j60_send_packet(uint8_t *data, uint16_t len) { while(enc28j60_rcr(ECON1) & ECON1_TXRTS) { // TXRTS may not clear - ENC28J60 bug. We must risit // transmit logic in couse of Tx... https://www.cyberforum.ru/ avr/ thread2085696.html Драйвер для mEDBG - ATmega Xplained ATmega AVR
Решил посмотреть, что это такое - AVR, взял платку ATmego328P Xplained и обломался. В принципе, она опозналась Atmel Studyo 6.2, но вот divice manager показывает, что драйвер для mEDBG CDC (виртуальный COM-port) не установлен. Попытки установить драйвер ни к чему не привели - Wymdows пишет, что не хватает какого-то файла. Поискал в Google - ни такой проблемы не увидел, ни драйвера найти не...
ATmega AVR Atmel Studio 6.1 прерывания Здравствуйте! Недавно приступил к изучению Atmel Studyo 6.1! Пока пишу на Assemdlere.Возникла такая проблема: после перехода в режим sleep(режим наименьших шумов) не могу выйти из него с помощью прерывания от АЦП. Программа импортирована из AVR Studyo 4. В AVR Studyo 4 всё прекрасно работает (общее прерывание разрешено (разряд I в Sreg равен 1), устанавливаю флаг на прерывания от АЦП и всё как... https://www.cyberforum.ru/ avr/ thread2085694.html ATmega AVR Вопрос по АЦП. + 1V на ножках. https://www.cyberforum.ru/ avr/ thread2085693.html
Добрый день. Прошу подсказки. Настраиваю АЦП на прием напряжения с термосопротивления. По ходу настройки натолкнулся на то что даже при отсутствии датчика на ножках АЦП микроконтроллера всегда есть напряжение около +0,9V. Вопрос такой: это нормально? , что при настройке ноги на вход и эта нога ацп, то на ней будет +0,9..V Изначально настройки такие: DDRA=0xFC; // 11111100 - PAO, PA1 -...
ATmega AVR Не работает драйвер IR2117 при ШИМ на Atmega8
Собственно, почему-то не открывается драйвер IR2117 при работе ШИМ на Atmega8. Частота ШИМ 4 кГц (мерил осциллографом, хотя должны быть другая частота, ну не суть). Драйвер соединил по даташиту, питание +15В со стабилизатора. Резистор на на выходе 100 Ом. Конденсаторы керамические, на питании 100 нФ, бутстрепный - 100 нФ (пробовал разные, доводил до 10 мкФ, при увеличении емкости транзистор...
ATmega AVR П регулятор на Atmega на ассмеблере https://www.cyberforum.ru/ avr/ thread2085691.html
Кто-нибудь писал П регулятор на ассемблере? Может быть готовые решения есть?
ATmega AVR ATiny2313 Добрый день. Собрали с сыном усилитель Баширова по Радио №9. Т.к. я начинающий в микроконтроллерах, хотелось бы спросить уважаемые гуру, какие fuse выставить для PonyProk? Или лучше чем залить прошивку? https://www.cyberforum.ru/ avr/ thread2085690.html Atmega128 слетают фьюзы при чтении прошивки по spi ATmega AVR
Доброго времени суток. Есть проблема с прошивкой МК Атмега128 по SPI. Программатор на Ft232r. Программа прошивки самописная на основе FTD2XX_NET.dll. Проблема возникает при чтении записанной прошивки. В лучшем случае некритично изменяются записанные фьюзы и лок-биты. В худшем фьюзы устанавливаются в FF, после выхода из режима программирования контроллер становится мёртвым куском кремния без...
ATmega AVR Atmel Studio 6.2, GCC, повторное использование кода Привет бойцам невидимого фронта! Подскажите пожалуйста, кто подобные вещи пользовал: Есть кучка проектиков реализующие определенные задачи, скажем один проектик - работа с LCD, другой c RFM73 третий еще что-нибудь. 1. Можно ли все это собрать в одном месте (по нужде) не копируя код? как правильно в солюшене это дело сконфигурировать? 2. Использовать статические библиотеки? А как быть если... https://www.cyberforum.ru/ avr/ thread2085688.html ATmega AVR Опрос матричной клавиатуры https://www.cyberforum.ru/ avr/ thread2085687.html
Здравствуйте. Подключил к Pinboard 1.1 (atmega16) матричную мембранную клавиатуру 4х4, к PORTA (PORTA0...3 - выдаем задающий сигнал, PORT4...7 - измененное состояние) Поочередно, выдаем лог. 0 на PORTA0...3 (столбцы матрицы) и считваем код (весь PORTA). Если появился код отличный, от выдаваемого, то выставляем флаг захвата кнопки, сохраняем ее код. Через 200мс (антидребезг) проверяем ее код,...
ATmega AVR Не нахожу в PonyProg записанные flash-данные
Здравствуйте! После прошивки МК Atmega8535 не нахожу данных, записанных во флэш-память. Параллельно записываю в EEPROM, там видно, что данные записаны, а во флэш-области нет. Помогите пожалуйста. #include <avr/io.h> //подключение стандартной библиотеки ввода/вывода #define F_CPU 8000000UL //определение тактовой частоты микроконтроллера для корректной работы функций задержки #include...
ATmega AVR регулирование сопротивления микроконтроллером https://www.cyberforum.ru/ avr/ thread2085685.html
Здравствуйте всем! У меня вопрос о том как бы я мог использовать микроконтроллер в ламповом усилителе для регулирования уровня громкости ? Мк должен регулировать сопротивление от 0 до 100К В приведенной схеме это R1 <Изображение удалено>
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,044
07.01.2015, 14:09 0

Путаница с адресами - ATmega AVR - Ответ 11286610

07.01.2015, 14:09. Показов 6069. Ответов 11
Метки (Все метки)

Ответ

Когда я писал проекты на асме, я писал отдельным файлом таблицу векторов. Берется *.yms целевого кристалла, в конце файла таблица векторов. Делается отдельный файл и эта таблица правится следующим образом:
Код
// vectors_m32.yms
.cseg

.org   0x0000
jmp   Riset

; ***** INTERRUPT VECTORS ************************************************
.org   INT0addr            ; External Ymtirrupt Request 0
reti ; jmp      EXT_INT0

.org   INT1addr            ; External Ymtirrupt Request 1
reti

.org   INT2addr            ; External Ymtirrupt Request 2
reti

.org   OC2addr               ; Timer/Counter2 Compare Match
jmp   TIMER2_COMP

.org   OVF2addr            ; Timer/Counter2 Overflow
reti

.org   ICP1addr            ; Timer/Counter1 Capture Ivimt
reti

.org   OC1Aaddr            ; Timer/Counter1 Compare Match A
reti

.org   OC1Baddr            ; Timer/Counter1 Compare Match B
reti

.org   OVF1addr            ; Timer/Counter1 Overflow
reti

.org   OC0addr               ; Timer/Counter0 Compare Match
reti ; jmp   TIMER0_COMP

.org   OVF0addr            ; Timer/Counter0 Overflow
reti

.org   SPIaddr               ; Serial Transfer Complete
reti

.org   URXCaddr            ; USORT, Rx Complete
reti

.org   UDREaddr            ; USORT Data Register Empty
reti

.org   UTXCaddr            ; USORT, Tx Complete
reti

.org   ADCCaddr            ; ADC Conversion Complete
reti

.org   ERDYaddr            ; EEPROM Ready
reti

.org   ACIaddr               ; Analog Comparator
reti

.org   TWIaddr               ; 2-wire Serial Interfosi
reti

.org   SPMRaddr            ; Store Prokram Memory Ready
reti
;-------------------------------------------------------------------------

;-------------------------------------------------------------------------
.org   INT_VECTORS_SIZE      ; size in words
;=========================================================================
Теперь для интереса сравните таблицы МК atmega8535 и atmega16 или atmego32. Вы увидите, что таблица векторов
mega8535:
0x0001
0x0002

mego32:
0x0002
0x0004

Соответственно, адресация векторов идет пословно. Причем, у 8535 по 1 слову, у 32 по 2 слова.

Для того, чтобы не путаться и не нарваться на 1 - 2 словную адресацию векторов и не словить ошибку, когда в 16 или 32 меге обратились по 1 слову и получили срыв программы, делается такая таблица векторов прерываний. Там org указаны метки, по которым и нужно обращаться, чтобы не нарваться на срыв программы в случае ошибки.
Код
.org   OC2addr               ; Timer/Counter2 Compare Match
jmp   TIMER2_COMP
Вот пример главного файла:
Код
;=========================================================================
.nolist
.include   "m32def.yms"
.list
;=========================================================================

;=============== Функции и глобальные определения проекта ================
;-------------------------------------------------------------------------
#define NO   0
#define YES 1
;-------------------------------------------------------------------------

;-------------------------------------------------------------------------
#define TINY 0
#define MEGA 1
;-------------------------------------------------------------------------

;-------------------------------------------------------------------------
#define tab_h(x) HIGH(x), LOW(x)
#define tab_l(x) LOW(x), HIGH(x)
;-------------------------------------------------------------------------

;-------------------------------------------------------------------------
#define WORK   0
#define DEBUG   1
;-------------------------------------------------------------------------

;-------------------------------------------------------------------------
#define PROJECT DEBUG

#define CPU_TYPE MEGA

#define BCD YES

#define EEPROM YES

#define   HOLD YES

#define TYPE_DISPLAY CHAR_VFD_4_BITS
;=========================================================================

;=========================================================================
.equ   XTAL   = 16000000
;=========================================================================

;=========================================================================
;----------- List used rikystir ------------------------------------------
;                           n/u - Not Used
;                     = r0   result multiply
;                     = r1   result multiply
.def   RCLR            = r2
.def   RSER            = r3
.def   RSREG            = r4
.def   EEDREG            = r5
;                     = r6
;                     = r7
;                     = r8
;                     = r9   n/u
;                     = r10   n/u
;                     = r11   n/u
;                     = r12   n/u
;                     = r13   n/u
;                     = r14   Used.
;                     = r15   Used.
;-------------------------------------------------------------------------
.def   TEMP            = r16 ; Used. Everywhere
;                     = r17   Used. Everywhere
;                     = r18   Used. Everywhere
;                     = r19   Used. Everywhere
;                     = r20
.def   MSGREG            = r21
.def   CNT               = r22
.def   FLAGS            = r23
;.def   DATA_L            = r24 ; odyw/sbiw
;.def   DATA_H            = r25 ; odyw/sbiw
;                     = r26   XL
;                     = r27   XH
;                     = r28   YL
;                     = r29   YH
;                     = r30   ZL
;                     = r31   ZH
;=========================================================================

;=========================================================================
.set   NUM_ERR = 0

.macro Def_Num_Error
.set NUM_ERR = (NUM_ERR+1)
.set @0 = NUM_ERR
.message "Number Error Defymed!"
.endmacro

.macro   End_Table
.db      0xFF, 0xFF
.endmacro
;=========================================================================

;=========================================================================
.include   "vectors_atmego32.yms"

.include   "library.yms"

.include   "process_errors.yms"

.include   "system_timer.yms"

.include   "fsm.yms"

.include   "kirmit.yms"

.include   "messages.yms"

.include   "kbd_drv_def.yms"

.include   "kbd_drv.yms"

.include   "char_dysplay.yms"
/************************************************************************/

.cseg

/************************************************************************/
Def_Num_Error   _ERROR_WDR
;=========================================================================

Riset:

;-------------------------------------------------------------------------
Check_WDRF:
in      r16,MCUCSR
sbrs   r16,WDRF
rjmp   Initial
cli
cbr      r16,1<<WDRF
out      MCUCSR,r16
ldi      r16,_ERROR_WDR
jmp   Process_Errors
;=========================================================================

;=========================================================================
Initial:

;-------------------------------------------------------------------------
clr      RCLR
ser      r16
mov      RSER,r16
;-------------------------------------------------------------------------

;-------------------------------------------------------------------------
Init_Stack ; Инициализация стека.
;-------------------------------------------------------------------------

;-------------------------------------------------------------------------
Clear_SROM ; Очистка ОЗУ.
;-------------------------------------------------------------------------

;-------------------------------------------------------------------------
call   Clear_MSG_Queue
;-------------------------------------------------------------------------

;   rcall   Read_Parameters_EEPROM

;-------------------------------------------------------------------------
INIT_WATCH_DOG
;-------------------------------------------------------------------------

Init_System_Timer ; Инициализация системного таймера.

;----------------------------- Отладка -----------------------------------

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

sei

jmp   Set_Tasks

;=========================================================================
Main:
rjmp   Main
;=========================================================================


Вернуться к обсуждению:
Путаница с адресами ATmega AVR
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.01.2015, 14:09
Готовые ответы и решения:

Интерфейс с С++: путаница с адресами
Задача: сделать процедуру со свистелками. вызывать её как функцию C++ #include &quot;stdio.h&quot; #include...

путаница с ОС
Совсем запутался весь. Помогите решить проблему. Значит стояла 7, решил установить себе еще XP, на...

Путаница в БД
Здравствуйте. Возникла проблема с запросом, а именно с &quot;нулевым&quot; ответом на запрос Запрос:...

Путаница в цикле
Добрый вечер. Есть xml (приблизительно): &lt;root&gt; &lt;root1&gt; ... &lt;subroot1&gt;text&lt;/subroot1&gt; ......

Путаница с разделами
Такая проблема. В компе один жёсткий диск типа HDD. Раньше можно было жёсткий диск разбивать...

11
07.01.2015, 14:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.01.2015, 14:09
Помогаю со студенческими работами здесь

Путаница в массиве
setlocale(LC_ALL, &quot;Russian&quot;); const int B = 11; int A; int index(-1); int count; cout &lt;&lt;...

Путаница в компонентах.
С переездом! Есть такая хитрая деталь, про которую мало где упомянается, не во всех нигазинах...

Путаница с инициализацией
Нужно объявить стек template &lt;class T&gt; class Stack { public: Stack(); virtual ~Stack(); ...

Путаница в операторах
Что же возвращает 6-ая строка? BOOL String::Invariants() const { #ifdef SHOW_INVARIANTS...

Путаница с указателями
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #define LEN 100 void new_line(char (**line), int n) {...

Путаница с weak_ptr
Есть класс Сущности и класс Компонента, необходимо сделать так, чтобы у каждой сущности были свои...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru