Технический форум
Вернуться   Технический форум > Электроника, самоделки и техника > Форум по электронике > Микропроцессоры


Ответ
 
Опции темы Опции просмотра
Старый 26.05.2012, 20:52   #1 (permalink)
News
Собираю Саб
 
Аватар для News
 
Регистрация: 12.04.2011
Сообщений: 1,611
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 524
Question Освоение МК ATmega16

Совершенно недавно (2 дня назад) загорелся я таки идеей научится програмировать МК. Нашол в интернете небольшой самоучитель Краткий Курс - Самоучитель - Программирование микроконтроллеров AVR - быстрый старт с нуля - 123avr.com. Дочитал я его до 6 странице и возник конфуз, а точнее целое море вопросов.
1 Конечно же с большого нетерпежа я залез в компилятор, но как только я собрался с мыслями, выяснилось, что команды то я многие знаю, а вот с их практическим применением беда, точнее как применить то я понимаю, но ведь у МК каждая нога имеет собственный адрес, который мне раздобыть не удалась....
2 Что содержится в файле <mega16.h>.
3 Значение оператора #define мне так до конца и не понятно. #define ROWER E. Эта строчка обозначает что "E" бкдет заменятся ROWER для уменьшения кода?
4 Оператор Goto. На что он может ссылаться?
5
Цитата:
PORTB = (unsigned char) ~(ADCW>>2); ADCW - это переменная слово (двухбайтовая величина - так она объявлена в файле mega16.h) в котором CodeVisionAVR сохраняет 10-битный результат АЦП - а именно в битах9_0 (биты с 9-го по 0-й) т.е. результат выровнен обычно - вправо.
Что это обозначает? Что такое PORTB?

Извеняюсь если вопросов много. Кому не сложно ответте.
В датащите не нашол адреса всех 40 ног. Только 21.

Последний раз редактировалось News; 26.05.2012 в 20:59
News вне форума   Ответить с цитированием

Старый 26.05.2012, 20:52
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Если проблема еще не решена, можете обратиться к похожим темам

ATmega16 и DS1820

Старый 26.05.2012, 21:24   #2 (permalink)
News
Собираю Саб
 
Аватар для News
 
Регистрация: 12.04.2011
Сообщений: 1,611
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 524
По умолчанию

5 Пункт вродеясно стало. PORTB это вымышленая переменная то-же что и ADCW.
News вне форума   Ответить с цитированием
Старый 27.05.2012, 16:36   #3 (permalink)
News
Собираю Саб
 
Аватар для News
 
Регистрация: 12.04.2011
Сообщений: 1,611
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 524
По умолчанию

Вроде потихоньку вьежжаю.
Посмотрите на текст простейшей программы. Правильно?
Цитата:
main()
{
//Для краткой записи используем макросы
#define PORTA.1 A1
#define PORTA.2 A2
#define PORTA.3 A3
#define PORTA.4 A4
#define PORTA.5 A5
#define PORTA.6 A6
#define PORTA.7 A7
//Если на 2 ножке порта А присутствует логическая 1, то вывести на ножку 1 порта А логическую 1
if(A2) A1 = 1:
//Иначе вывести логическую единицу на ножку 3 порта А
else {A3 = 1;}
}
News вне форума   Ответить с цитированием
Старый 28.05.2012, 18:03   #4 (permalink)
News
Собираю Саб
 
Аватар для News
 
Регистрация: 12.04.2011
Сообщений: 1,611
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 524
По умолчанию

Хех ошибку в макросах никто не нашол....
News вне форума   Ответить с цитированием
Старый 28.05.2012, 18:20   #5 (permalink)
Stvol
Mebmer
 
Регистрация: 04.04.2012
Сообщений: 1,463
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2110
По умолчанию

Есть ошибка. В «макросе» «нашОл» предпоследняя Е или Ё.
Stvol вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 28.05.2012, 20:19   #6 (permalink)
News
Собираю Саб
 
Аватар для News
 
Регистрация: 12.04.2011
Сообщений: 1,611
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 524
По умолчанию

Цитата:
#include <mega16.h>
Inicializacion()
{
//Делаем выходом ПОРТ А
DDRA=255;
//Делаем входом ПОРТ В
DDRB=0;
}
Main()
{
Inicializacion();
//Запускаем таймер 0 (Время переполнения 32МСЕК)
TCCR0=0b00000101;
while(TOV0){PORTA.0=0; PORTA.2=0; PORTA.4=0; PORTA.6=0; PORTA.1=1; PORTA.3=1; PORTA.5=1; PORTA.7=1; TIFR = 0x01;}
//Запускаем таймер 0 (Время переполнения 32МСЕК)
TCCR0=0b00000101;
while(TOV0){PORTA^=1; PORTA^=0; TIFR = 0x01;}
}
Написал такую прогу. Она должна чередовать каждый 2 светодиод а ПОРТЕ А с таймлингом в 32МКС
News вне форума   Ответить с цитированием
Старый 28.05.2012, 20:45   #7 (permalink)
News
Собираю Саб
 
Аватар для News
 
Регистрация: 12.04.2011
Сообщений: 1,611
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 524
По умолчанию

ВМЛАБ ругается на любой загруженый проэкт.... Что делать?
Миниатюры
vmlab.jpg  
News вне форума   Ответить с цитированием
Старый 28.05.2012, 21:30   #8 (permalink)
Ильмир
МАГистр
 
Аватар для Ильмир
 
Регистрация: 11.07.2010
Сообщений: 2,196
Записей в дневнике: 9
Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 2 сообщениях
Репутация: 2976
По умолчанию

Мой совет тебе, лучше осваивай STM32 )))

хотя я тоже на tiny2313 учился мигать светодиодом
Простейшая программа для AVR на ассемблере
Изучаю ATtiny2313
Ильмир вне форума   Ответить с цитированием
Старый 28.05.2012, 21:49   #9 (permalink)
News
Собираю Саб
 
Аватар для News
 
Регистрация: 12.04.2011
Сообщений: 1,611
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 524
По умолчанию

Нет уж Мне АВР нравятся, к тому-же фундамент заложен...
News вне форума   Ответить с цитированием
Старый 30.05.2012, 19:25   #10 (permalink)
News
Собираю Саб
 
Аватар для News
 
Регистрация: 12.04.2011
Сообщений: 1,611
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 524
По умолчанию

Обьясните ПЖЛ как CodeVisionAVR Evaluation V2.05.8 работать. Никак ХЕКС, ЛСТ файлы немогу получить, а без них програму не просимулировать.
News вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 06:42.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.