Например TDA7294

Форум РадиоКот • Просмотр темы - Внутренний EEPROM tiny2313. hello, world ???!!???
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Ср мар 04, 2026 10:47:50

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


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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Внутренний EEPROM tiny2313. hello, world ???!!???
СообщениеДобавлено: Вс янв 06, 2013 23:32:39 
Первый раз сказал Мяу!

Зарегистрирован: Вс фев 26, 2012 10:53:30
Сообщений: 38
Рейтинг сообщения: 0
Всем привет.
Я новичок в МК и пытаюсь изучить работу с внутренней EEPROM. Начитавшись инета, написал нечто типа Hello World и пытаюсь заставить работать. Не комилится оно в AVR Studio 5.1. Хочу при запуске записать в память некое значение по некоему адресу,( а потом програматором посмотреть, записалось оно или нет. Тупо может быть, но мне так приятней.) Компилятор не понимает, что такое EEWE.
Код:
 #define F_CPU 1000000UL  // 1 MHz
#include <avr/io.h>
#include <avr/eeprom.h>
#include <util/delay.h>


   
   int main(void)              // начало основой программы
   {
   
    while(EECR & (1<<EEWE));//ждем установки бита EEWE
   EEAR = 0x10;//устанавливаем адрес
   EEDR = 0x10;//записываем байт данных
   EECR |= (1<<EEMWE);//устанавливаем EEMWE
   EECR |= (1<<EEWE);//устанавливаем EEWE   
      
   }      // закрывающая скобка основной программы

Пытаюсь включить io2313.h, в котором описаны EEWE, компилятор ругается на двойное включение файла.
В чем проблема?


Вернуться наверх
 
 Заголовок сообщения: Re: Внутренний EEPROM tiny2313. hello, world ???!!???
СообщениеДобавлено: Вс янв 06, 2013 23:34:09 
Говорящий с текстолитом
Аватар пользователя

Карма: 11
Рейтинг сообщений: 143
Зарегистрирован: Пт дек 28, 2012 21:56:46
Сообщений: 1518
Откуда: St. Petersburg
Рейтинг сообщения: 0
Попробуйте EEPE.

_________________
Изображение only pure true norwegian blackx Изображение


Вернуться наверх
 
 Заголовок сообщения: Re: Внутренний EEPROM tiny2313. hello, world ???!!???
СообщениеДобавлено: Вс янв 06, 2013 23:41:39 
Первый раз сказал Мяу!

Зарегистрирован: Вс фев 26, 2012 10:53:30
Сообщений: 38
Рейтинг сообщения: 0
blackx писал(а):
Попробуйте EEPE.

Блин. Скомпилилось!
НО ПОЧЕМУ? Ведь везде, в т.ч в даташите везде описано EEMWE, EEWE????????????????
П.СЫЫЫЫ! Косяк я слепой невнимательный! В Даташите как раз описано EEPE! Вот зараза какая.
Тема закрыта, СПАСИБО blackx!!!


Последний раз редактировалось ArtemKolesnikov Вс янв 06, 2013 23:46:27, всего редактировалось 1 раз.

Вернуться наверх
 
 Заголовок сообщения: Re: Внутренний EEPROM tiny2313. hello, world ???!!???
СообщениеДобавлено: Вс янв 06, 2013 23:44:56 
Говорящий с текстолитом
Аватар пользователя

Карма: 11
Рейтинг сообщений: 143
Зарегистрирован: Пт дек 28, 2012 21:56:46
Сообщений: 1518
Откуда: St. Petersburg
Рейтинг сообщения: 0
Погуглил "AVR EEWE". Открыл первую же PDF-ку. На первой же странице прочитал

Цитата:
Note: In the latest devices the EEWE bit in EECR is called EEPE, and the EEMWE is
called EEMPE. Also in the latest devices the EECR consist of two extra bits to set the
Programming Mode, EEPM0 and EEPM1. These two bits needs to be initialized
before EEPE is set.


:)) :))

А ваш файлик, io2313.h, если в нем действительно определен EEWE - видимо просто устаревший, компилятор то может и другой юзать.

_________________
Изображение only pure true norwegian blackx Изображение


Последний раз редактировалось blackx Пн янв 07, 2013 00:35:19, всего редактировалось 1 раз.

Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
 Заголовок сообщения: Re: Внутренний EEPROM tiny2313. hello, world ???!!???
СообщениеДобавлено: Вс янв 06, 2013 23:49:41 
Первый раз сказал Мяу!

Зарегистрирован: Вс фев 26, 2012 10:53:30
Сообщений: 38
Рейтинг сообщения: 0
blackx писал(а):
Погуглил "AVR EEPE". Открыл первую же PDF-ку. На первой же странице прочитал

Цитата:
Note: In the latest devices the EEWE bit in EECR is called EEPE, and the EEMWE is
called EEMPE. Also in the latest devices the EECR consist of two extra bits to set the
Programming Mode, EEPM0 and EEPM1. These two bits needs to be initialized
before EEPE is set.


:)) :))

А ваш файлик, io2313.h, если в нем действительно определен EEWE - видимо просто устаревший, компилятор то может и другой юзать.

Спасибо за ответ!. Да, точно, устаревший файл, я почему то склонен больше верить статьям и форумам, чем даташиту... Вот и напоролся...
p.s. Все получилось! В ячейку 0х10 записалось число 0х10 . изучаем чтение теперь.


Вернуться наверх
 
 Заголовок сообщения: Re: Внутренний EEPROM tiny2313. hello, world ???!!???
СообщениеДобавлено: Пн янв 07, 2013 00:23:13 
Держит паяльник хвостом
Аватар пользователя

Карма: 15
Рейтинг сообщений: 70
Зарегистрирован: Ср мар 28, 2012 21:45:24
Сообщений: 906
Откуда: ВО
Рейтинг сообщения: 0
Что самое интересное в обоих DS и 2313 и 2313A указан бит EEPE. Может сначала научится читать?


Вернуться наверх
 
 Заголовок сообщения: Re: Внутренний EEPROM tiny2313. hello, world ???!!???
СообщениеДобавлено: Пн янв 07, 2013 00:34:19 
Первый раз сказал Мяу!

Зарегистрирован: Вс фев 26, 2012 10:53:30
Сообщений: 38
Рейтинг сообщения: 0
ILYAUL писал(а):
Что самое интересное в обоих DS и 2313 и 2313A указан бит EEPE. Может сначала научится читать?

Скорее всего, вы правы. Просто пробежавшись по даташиту, осмотрев регистры (в частности EECR) и их описание, я не заметил того, что в даташите биты обозваны именно через букву P, в то время как в одной статье, которая вылазиет по гуглу при поиске AVR EEPROM (третья по счету) так красиво и привлекательно описывает эти же регистры - у автора этой статьи биты обозваны через букву W.
Привлек исходный код функций с комментариями, честно...


Вернуться наверх
 
 Заголовок сообщения: Re: Внутренний EEPROM tiny2313. hello, world ???!!???
СообщениеДобавлено: Вт янв 08, 2013 19:01:45 
Друг Кота
Аватар пользователя

Карма: 77
Рейтинг сообщений: 1247
Зарегистрирован: Вс мар 29, 2009 22:09:05
Сообщений: 7518
Рейтинг сообщения: 0
Цитата:
я почему то склонен больше верить статьям и форумам, чем даташиту...


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

Код:
#define F_CPU 1000000UL  // 1 MHz
#include <avr/io.h>
#include <avr/eeprom.h>
#include <util/delay.h>


   
   int main(void)              // начало основой программы
   {
   
    while(EECR & (1<<EEWE));//ждем установки бита EEWE
   EEAR = 0x10;//устанавливаем адрес
   EEDR = 0x10;//записываем байт данных
   EECR |= (1<<EEMWE);//устанавливаем EEMWE
   EECR |= (1<<EEWE);//устанавливаем EEWE   
     
   }      // закрывающая скобка основной программы


F_CPU надо указывать в настройках IDE, а не явным дефайном.

В avr/eeprom.h есть функции eeprom_write_xxx() / eeprom_read_xxx().

У main в эмбеде не должно быть возвращаемого значения - это не имеет смысла.

Программа для МК должна кончаться бесконечным циклом.

_________________
Разница между теорией и практикой на практике гораздо больше, чем в теории.


Вернуться наверх
 
 Заголовок сообщения: Re: Внутренний EEPROM tiny2313. hello, world ???!!???
СообщениеДобавлено: Ср янв 09, 2013 08:22:04 
Первый раз сказал Мяу!

Зарегистрирован: Вс фев 26, 2012 10:53:30
Сообщений: 38
Рейтинг сообщения: 0
YS писал(а):
.

Спасибо.


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

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


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

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


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