Например TDA7294

Форум РадиоКот • Просмотр темы - CodeVision + Arduino библиотеки + Atmega64
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт июл 10, 2025 22:56:01

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 17 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: CodeVision + Arduino библиотеки + Atmega64
СообщениеДобавлено: Пт апр 05, 2013 10:45:23 
Грызет канифоль

Зарегистрирован: Пт апр 05, 2013 09:55:02
Сообщений: 252
Рейтинг сообщения: 0
Добрый день, уважаемые коты.
Принимайте в свои ряды новенького.

Итак. Одним ранним утром решил я что пора мне осваивать микроконтроллеры, писать к ним программы и всяческим другим образом повелевать электронами, ибо находить программиста для своих целей очень дорого, да и сама тема уж больно интересная.

Решил, что проще всего начать знакомство с микроконтроллерами по средствам Arduino. выбор пал на отладочную платку 2560. вместе с ней из китая были заказаны: шилд с TFT 3,2", всякие пустышки, УЗ датчики + по мелочи кучу всего на сдачу. Посылочка моя медленно и верно полетела из китая ко мне. лететь будет долго и чувства одиночества без отладочной платы не давало мне уснуть, а посему мною были отрыты из сусеков отладочная платка (которую давно давно делал) с камушком Atmega64.
Изображение
плата представляет из себя - просто atmega64 с выведенными концами по краю, что бы удобно было к ним проводки подводить. все. больше ничего нет. вру. есть. мелочовка - площадки для кварца + два места под кондеры к нему и площадки для резистора и кондера к ножке ресет. на данный момент ничего не припаял.

Далее в наличии на хоз учете имеем пустышку плату.
Изображение
или как она правильно называется?

ООО. забыл упомянуть многострадальный программатор AS3M. почему многострадальный? уж больно много лишних (и самое главное - глупых) действий мне пришлось с ним провернуть, что бы заставить сие работать.

Приступаем к программной части:
Камушек на плате видится, читается, программульки простецкие туда записываются. Светодиодиками помигать получилось, кнопочками поиграться тоже, семисегментный индикатор тоже поддался без проблем. а вот ШИМ дался уже с трудностями. Потихоньку "разжигать" светодиод получилось, а вот понимания 50% кода нет. т.е. необходимо мне еще сидеть и сидеть над освоением С++, даташитов контроллера, принципиального понимания физических законов и прочее прочее прочее. ну я какбЭ и не против. Знание - сила.

Уж больно хочется мне упросить себе жизнь, не изобретать с самого начала светодиод (велосипед).
И тут на помощь приходит Arduino IDE. тем более что и плата у меня Arduino.
Скачал сие ПО, посмотрел. ну все совсем просто. AVR (сейчас уже Atmel) Studio намного приятнее.

И вот поставленна новая задача мною передо мною же.
Необходимо в программной среде Atmel Studio 6 сделать надстройку, что бы можно было писать и на языке Wiring (Arduino IDE) и просто C++. Одновременно. Вместе. Рука об руку. Что бы, как гласит исконно мужская пословица - одно другому не мешало.
и тут на помощь пришла замечательная статья из трех частей: http://www.jayconsystems.com/tutorial/atmerpt1/

Вуаля. вся та супер "надстройка wiring-а" распознается и понимается компилятором AVR Studio. берем простой скетч Arduino IDE - мигание светодиодом. компилим в AVR Studio. ошибок ноль. все хорошо. hex создался. правда тут объем его 4 КБ. вместо 300 байт - если писать по обычному. но это не беда. отладим все потом. благо у нас камушки мощные и большие. позволяют такие размеры в себя засунуть. и гораздо больше.
Зачем все это спросите вы? зачем так изгаляться? "мисье знает толк в извращениях" - возможно кто-то захочет написать. НО!!! подождите и, немного набравшись терпения, прочтите до конца. осталось немного.
Смысл всего этого (совмещение wiring и С++) заключается в том, что при данной конструкции среды разработки я могу брать библиотеки для Arduino (например к тому же TFT 3.2" который заказал), вставлять их в свой проект, тупо так копипастить код из скетча-примера и уже дословно разбираться в нем в своей программе. а если не могу что-то понять, то это не будет мешать программе правильно работать. ведь не на каждый вопрос можно найти сразу же ответ.

Ну вот и переходим к заключительной части: вопросу аудитории.
в каком файле Arduino находится описание каждой ноги к контроллеру? ведь в платах Arduino нет Atmega64. а у меня есть только она сейчас.
правильно ли я понимаю, что тут: pins_arduino.h
но как мне расписать этот файл?
Подскажите плииз.

Буду рад развить эту тему, возможно она будет полезна многим новичкам.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Studio + Arduino библиотеки + Atmega64
СообщениеДобавлено: Пт апр 05, 2013 12:35:17 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
тут прикручивали тини85 к ардуино: http://www.instructables.com/id/Self-co ... no-Attiny/
может поможет - по образу и подобию


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Studio + Arduino библиотеки + Atmega64
СообщениеДобавлено: Пт апр 05, 2013 16:37:54 
Грызет канифоль

Зарегистрирован: Пт апр 05, 2013 09:55:02
Сообщений: 252
Рейтинг сообщения: 0
вообще не догоняю как и что там.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Studio + Arduino библиотеки + Atmega64
СообщениеДобавлено: Пт апр 05, 2013 18:07:01 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Код:
6. Install ATtiny45 / ATtiny85 support in **Arduino v0023**

   - Download: attiny45_85.zip
    http://hlt.media.mit.edu/wp-content/uploads/2011/06/attiny45_85.zip
  - Locate your Arduino sketchbook folder (you can find its location in the preferences dialog in the Arduino software)
   - Create a new sub-folder called “hardware” in the sketchbook folder.
   - Copy the attiny45_85 folder from the attiny45_85.zip to the hardware folder.
   - Restart the Arduino development environment.

бегло глянул - надо по подобию отредактировать:
boards.txt
pins_arduino.c
Makefile
для меги64


Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: AVR Studio + Arduino библиотеки + Atmega64
СообщениеДобавлено: Пн апр 08, 2013 07:48:31 
Грызет канифоль

Зарегистрирован: Пт апр 05, 2013 09:55:02
Сообщений: 252
Рейтинг сообщения: 0
Оставил пока портирование меги64 на ардуино и переключился на другую задачу: подключение к экранчику 12864 (FDCG12864B-FLYYBW-51XN). Делал все как тут: http://www.radiokot.ru/lab/controller/15/
В Proteus все симулируется отлично. На моем камне нифига. пробовал и с внутренним 8 МГц и с внутренним 1 Мгц. один фиг не выводит. Контрастность регулируется потенциометром. залитую матрицу видно, но не понятно - прошла инициализация экрана или нет. ну и соответственно ничего не выводится на экран. хотя опять-таки в proteus все работает отлично. как так?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Studio + Arduino библиотеки + Atmega64
СообщениеДобавлено: Пн апр 08, 2013 09:28:13 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Задержки, может надо больше, еще там бывает, не помню уже, разобраться с "правильностью" CS1 CS2


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: AVR Studio + Arduino библиотеки + Atmega64
СообщениеДобавлено: Пн апр 08, 2013 10:18:41 
Грызет канифоль

Зарегистрирован: Пт апр 05, 2013 09:55:02
Сообщений: 252
Рейтинг сообщения: 0
oleg110592 писал(а):
Задержки, может надо больше, еще там бывает, не помню уже, разобраться с "правильностью" CS1 CS2


ага. вот вся беда в этих задержках. не понимаю как их подбирать. пробовал методом "кота тыка" - не получается. менял частоту, благо в атмеге 64 без кварца можно поставит 1 или 2 или 4 или 8 МГц - результат аналогичный.

а правильность cs1 / cs2 видна на экране сразу - либо перепутаны половинки либо нет, но мне еще и не дойти до этого момента.

подключил так:
Изображение

реально все вот так:
Изображение

в proteus пашет, в железе - мяу на ны.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Studio + Arduino библиотеки + Atmega64
СообщениеДобавлено: Пн апр 08, 2013 10:32:32 
Грызет канифоль

Зарегистрирован: Пт апр 05, 2013 09:55:02
Сообщений: 252
Рейтинг сообщения: 0
Пишу в Atmel Studio 6
сама прога:
Код:
#include <avr/io.h>
#include <stdlib.h>
#include <macros.h>
#include <avr/delay.h>
#define NOP() asm volatile("nop")
#define SetBit(x,y) (x|=y)
#define ClrBit(x,y) (x&=~y)
#define TestBit(x,y) (x&y)
#define LCD_RST 0b00000001
#define LCD_CS1 0b00000010
#define LCD_CS2 0b00000100
#define LCD_E   0b00001000
#define LCD_RW  0b00010000
#define LCD_RS  0b00100000
#define LCD_DB PORTB       //Порт управления данных на моей плате
#define LCD_COM PORTD   //порт управляющих выводов на моей плате
#include <ks0108.h>

int main(void)
{
   DDRB=0xff;
   DDRD=0xff;
init_lcd();
_delay_ms(5);
clear();
_delay_ms(5);
   
WriteXY(6,2,LCD_CS1);
WriteData(0b00000000,LCD_CS1);
   
    while(1)
    {               
    }
}


файл ks0108.h

Спойлер
Код:
#include <symvol.h>
#include <stdlib.h>
#include <string.h>


unsigned char
textx,
texty,
curx,
cury,
ch[6];


void WriteCom(unsigned char Com,unsigned char CS)
{
 SetBit(LCD_COM,CS);
 ClrBit(LCD_COM,LCD_RS);
 ClrBit(LCD_COM,LCD_RW);
 NOP();
 NOP();

 LCD_DB=Com;
 SetBit(LCD_COM,LCD_E);
 NOP();
 NOP();

 ClrBit(LCD_COM,LCD_E);
 _delay_us(4);
 ClrBit(LCD_COM,(LCD_CS1+LCD_CS2));
 SetBit(LCD_COM,LCD_E);
}

void WriteData(unsigned char data,unsigned char CS)
{
 SetBit(LCD_COM,CS);
 SetBit(LCD_COM,LCD_RS);
 ClrBit(LCD_COM,LCD_RW);
 NOP();
 NOP();

  LCD_DB=data;
 SetBit(LCD_COM,LCD_E);
NOP();
NOP();

 ClrBit(LCD_COM,LCD_E);
 _delay_us(4);
 ClrBit(LCD_COM,(LCD_CS1+LCD_CS2));
 SetBit(LCD_COM,LCD_E);
}

void WriteXY(unsigned char x,unsigned char y,const unsigned char CS)
{
 WriteCom(0xb8+y,CS);
 WriteCom(0x40+x,CS);
}

void init_lcd(void)
{
   
 SetBit(LCD_COM,LCD_RST);
 _delay_ms(5);
 WriteXY(0,0,(LCD_CS1+LCD_CS2));
 WriteCom(0xc0,(LCD_CS1+LCD_CS2));
 WriteCom(0x3f,(LCD_CS1+LCD_CS2));


}

void clear(void)
{
 unsigned char x,y;
 for(x=0;x<64;x++)
 {
  for(y=0;y<8;y++)
  {
   WriteXY(x,y,(LCD_CS1+LCD_CS2));   
   WriteData(0,(LCD_CS1+LCD_CS2));   
  }
 }
}




Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Studio + Arduino библиотеки + Atmega64
СообщениеДобавлено: Вт апр 16, 2013 15:23:10 
Грызет канифоль

Зарегистрирован: Пт апр 05, 2013 09:55:02
Сообщений: 252
Рейтинг сообщения: 0
итак. заполняем дальше свой кото-блог :-)
писать все-таки продолжил в CodeVision. Atmel Studio оставляем до поры, ибо очень много что там не понятного. особенно не нравится, что размер программульки получается в 3-и раза больше, нежели аналогичная программа компилируется в CodeVision. уже по-моему все настройки крутил.
Экранчик поддался сразу. что очень порадовало:
Изображение

далее настал через датчика температуры DS18B20

в принципе навалом всяких примеров и по 1wire датчик стал показывать температуру.
Изображение

чем дальше в лес, тем больше дров.
Может кто подскажет мне ответ: как мне использовать несколько датчиков? но я должен четко знать где какой стоит, а не опрашивать их по ROM номеру. т.е. у меня 4-и датчика температуры. все показания разные. все датчики втыкаются и вытыкаются когда хотят. так как мне четко необходимо знать, что тут воткнули (ну к примеру верхний левый датчик), то предполагаю, что надо привязываться к пинам мк.
весь код для одного датчика такой:
Код:
#asm
.equ __w1_port=0x18 ;PORTB
.equ __w1_bit=3
#endasm
#include <ds18b20.h>

temper = ds18b20_temperature(0);
    delay_ms(50);
    sprintf( lcdBuff,"     %.1f\xB0C", temper );
 вывод на экран значение lcdBuff;

а как сделать тоже самое, но для 2-х? 3-х? датчиков, присоединенных к другим ногам?
правильно ли я понимаю, что первое - это будет так:
Код:
#asm
.equ __w1_port=0x18 ;PORTB
.equ __w1_bit=3
.equ __w2_port=0x18 ;PORTB
.equ __w2_bit=2
.equ __w3_port=0x18 ;PORTB
.equ __w3_bit=1
.equ __w4_port=0x18 ;PORTB
.equ __w4_bit=0
#endasm


а вот дальше мне не допереть.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Studio + Arduino библиотеки + Atmega64
СообщениеДобавлено: Вт апр 16, 2013 15:47:03 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 21
Рейтинг сообщений: 143
Зарегистрирован: Сб фев 21, 2009 13:11:40
Сообщений: 1900
Откуда: Москва
Рейтинг сообщения: 0
kentik писал(а):
заполняем дальше свой кото-блог
Вы ошиблись, это не кото-блог. Ваше сообщение никак не относится к AVRStudio и Arduino библиотекам. Может стоит писать вопросы там, где это в тему?
Всё по DS18(B/S)20.
CodeVision AVR в вопросах и ответах :kill:

_________________
Ставим плюсы: )


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Studio + Arduino библиотеки + Atmega64
СообщениеДобавлено: Вт апр 16, 2013 19:32:47 
Грызет канифоль

Зарегистрирован: Пт апр 05, 2013 09:55:02
Сообщений: 252
Рейтинг сообщения: 0
ibiza11 писал(а):
Вы ошиблись, это не кото-блог. Ваше сообщение никак не относится к AVRStudio и Arduino библиотекам. Может стоит писать вопросы там, где это в тему?
:kill:

может не стоит злиться? название темы мне уже не поменять. а так изменил бы на CodeVision + Arduino библиотеки + Atmega64


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Studio + Arduino библиотеки + Atmega64
СообщениеДобавлено: Вт апр 16, 2013 19:35:56 
Поставщик валерьянки для Кота

Карма: 16
Рейтинг сообщений: 329
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Сообщений: 2222
Откуда: Tashkent
Рейтинг сообщения: 0
kentik писал(а):
.equ __w2_port=0x18 ;
PORTB.equ __w2_bit=2

Нет, неправильно.
w1 - видимо расшифровывается как 1Wire.

Для того , чтобы подключить по одному проводу на датчик, надо перелопатить ту библиотеку под себя. Точнее потрошить дизассемблер этих функций:
Код:
unsigned char w1_init(void);
unsigned char w1_read(void);
unsigned char w1_write(unsigned char data);
unsigned char w1_search(unsigned char cmd,void *p);
unsigned char w1_dow_crc8(void *p,unsigned char n);

Но проще самому написать под себя, ИМХО. Или в сети готовые примеры найти и сделать по их образу и подобию.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Studio + Arduino библиотеки + Atmega64
СообщениеДобавлено: Вт апр 16, 2013 20:15:47 
Грызет канифоль

Зарегистрирован: Пт апр 05, 2013 09:55:02
Сообщений: 252
Рейтинг сообщения: 0
uk8amk писал(а):
Но проще самому написать под себя, ИМХО. Или в сети готовые примеры найти и сделать по их образу и подобию.

неее написать библиотеку пока рановато для меня. это чуть позже :-)
спасибо за идею. почапал рыскать в инете другие примеры.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Studio + Arduino библиотеки + Atmega64
СообщениеДобавлено: Вт апр 16, 2013 20:53:14 
Сверлит текстолит когтями
Аватар пользователя

Карма: 4
Рейтинг сообщений: 30
Зарегистрирован: Ср янв 05, 2011 16:25:15
Сообщений: 1163
Рейтинг сообщения: 0
kentik писал(а):
неее написать библиотеку пока рановато для меня.
... для работы с DS18b20 достаточно написать 3 функции - w1_init(), w1_read(), w1_write().

Пример w1_init()
Код:
uchar DS18b20_init(void){ 
    uchar cnt;   
     DDRD.Ds18b20=1; // линию в "0"
          delay_us(480);
     #asm("cli")
     DDRD.Ds18b20=0; // отпустим линию
     delay_us(5);
     cnt=20;     
         while(cnt--){ // ждем ответа 50 мкс
            if(PIND.Ds18b20==1){ delay_us(1);}
            else {
                    #asm("sei")
                    delay_us(480);
                    goto end_init; }
            }
     #asm("sei")     
end_init:     
     return cnt;
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Studio + Arduino библиотеки + Atmega64
СообщениеДобавлено: Вт апр 16, 2013 21:21:55 
Грызет канифоль

Зарегистрирован: Пт апр 05, 2013 09:55:02
Сообщений: 252
Рейтинг сообщения: 0
ChipKiller писал(а):
для работы с DS18b20 достаточно написать 3 функции - w1_init(), w1_read(), w1_write().

Пример w1_init()


Спасибо. Обьясните пожалуйста вот эту строчку: DDRD.Ds18b20=1;
у меня компилятор ругается.

p.s. Uchar - это unsigned char?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Studio + Arduino библиотеки + Atmega64
СообщениеДобавлено: Вт апр 16, 2013 21:29:38 
Сверлит текстолит когтями
Аватар пользователя

Карма: 4
Рейтинг сообщений: 30
Зарегистрирован: Ср янв 05, 2011 16:25:15
Сообщений: 1163
Рейтинг сообщения: 0
Цитата:
Обьясните пожалуйста вот эту строчку: DDRD.Ds18b20=1;
у меня компилятор ругается.
неужели сложно догадаться и написать
Код:
#define  Ds18b20 6
#define  uchar unsigned char
#define  uint unsigned int
Ds18b20 - номер вывода порта ...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Studio + Arduino библиотеки + Atmega64
СообщениеДобавлено: Вт апр 16, 2013 21:39:00 
Грызет канифоль

Зарегистрирован: Пт апр 05, 2013 09:55:02
Сообщений: 252
Рейтинг сообщения: 0
ChipKiller писал(а):
неужели сложно догадаться и написать Ds18b20 - номер вывода порта ...

Вы не поверите, но не просто. "Я не волшебник, я только учусь"©

не сочтите за наглость, но я был бы премного благодарен за описание остальных 2х функций


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 17 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y