Например TDA7294

Форум РадиоКот • Просмотр темы - CodeVision AVR в вопросах и ответах
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Ср апр 17, 2024 00:29:44

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


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



Начать новую тему Ответить на тему  [ Сообщений: 8273 ]     ... , , , 391, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Чт авг 17, 2017 12:38:24 
Родился

Зарегистрирован: Чт авг 17, 2017 11:11:05
Сообщений: 1
Рейтинг сообщения: 0
Извиняюсь, если было или не в ту тему, но вот такая проблема возникла с CodeVisionAVR впервые за несколько лет работы:

При переносе проектов на другой комп и установки точно такой же версии CodeVisionAVR 2.05 возникла проблема: не открываются некоторые проекты! КодВижн выдает ошибку с единственным словом: "The"...

Изображение

Проблема наблюдается на 2-х разным машинах с разными версиями виндоф. Кто нибудь сталкивался с подобной проблемой? Отзовитесь, пожалуйста...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн авг 28, 2017 17:52:59 
Нашел транзистор. Понюхал.

Карма: 5
Рейтинг сообщений: 7
Зарегистрирован: Вс дек 10, 2006 19:26:13
Сообщений: 198
Рейтинг сообщения: 0
Тренируюсь в Протеусе с внешней памятью 24С256, с помощью библиотеки i2c.h и функций i2c_write и т.д. Писать побайтно без проблем, а вот если например надо стереть всё, FF на все 32 кб, то на каждый байт по 10 мс-это же сколько времени уйдет. Читал, что можно постранично писать в память, а как это сделать?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт авг 29, 2017 17:34:52 
Поставщик валерьянки для Кота

Карма: 16
Рейтинг сообщений: 329
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Сообщений: 2222
Откуда: Tashkent
Рейтинг сообщения: 0
dm211 писал(а):
Читал, что можно постранично писать в память, а как это сделать?


Вложения:
page_wr.PNG [78.93 KiB]
Скачиваний: 501
Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср авг 30, 2017 12:33:13 
Нашел транзистор. Понюхал.

Карма: 5
Рейтинг сообщений: 7
Зарегистрирован: Вс дек 10, 2006 19:26:13
Сообщений: 198
Рейтинг сообщения: 0
Ну понятно, даташиты читать нада..
Первый адрес и отправляешь 64 байта и так вроде работает, без LOW адреса и какой смысл этого адреса последнего байта, если и так известно, что он будет= первый+64.


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср авг 30, 2017 12:45:19 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4875
Откуда: Минск
Рейтинг сообщения: 1
Смысла нет, поэтому адрес последнего байта нигде и не требуется. В даташите в том числе.

Следует учесть, что если адресовать первый байт не кратный 64 (начать писать страницу не с нуля, а где-то с серединки страницы), то при переполнении страницы следующий байт будет записываться в начало той же, а не следующей страницы.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср авг 30, 2017 15:33:25 
Нашел транзистор. Понюхал.

Карма: 5
Рейтинг сообщений: 7
Зарегистрирован: Вс дек 10, 2006 19:26:13
Сообщений: 198
Рейтинг сообщения: 0
В даташите в том числе.

А что же это тогда?- Adress High Byte и Adress Low Byte.
И еще вопрос- при побайтной записи, после каждого байта делаем задержку ~10 мс, а при постраничной записи между байтами не делаем и после записи страницы тоже не делаем?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср авг 30, 2017 16:14:57 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4875
Откуда: Минск
Рейтинг сообщения: 1
Это старший байт адреса и младший байт адреса. Одного и того же адреса - начального! Как, собственно, и следует из их названий.

При постраничной записи передаваемыми данными набиваются SRAM-ячейки специального регистра, а уже потом за 10мс они все параллельно сбрасываются в матрицу в нужную строку. Соответственно, страничная запись приблизительно в 64 раза быстрее.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср авг 30, 2017 17:01:29 
Нашел транзистор. Понюхал.

Карма: 5
Рейтинг сообщений: 7
Зарегистрирован: Вс дек 10, 2006 19:26:13
Сообщений: 198
Рейтинг сообщения: 0
Вот теперь всё понятно. Значит код ниже правильный у меня?
Код:
void eeprom_write_page(unsigned char address, unsigned char data){ // Постраничная запись
unsigned char y;
i2c_start();                           // Кидаем команду "Cтарт" на шину I2C
i2c_write(Ext_EEPROM_Adr);             // Кидаем на шину адрес 24LC256
i2c_write(address>>8);                 // Старший байт адреса
i2c_write(address);                    // младший байт адреса
for(y=0; y<64; y++){                   // Посылаем 64 байта
i2c_write(data);}                      // Посылаем байт для записи
i2c_stop();                            // Посылаем команду "Стоп"
}

// Стереть всё
void clear_all(){
 unsigned int x;
for(x=0; x<500; x++){
 eeprom_write_page(x, 0xFF);
}
}

В Протеусе стирает за 7 секунд.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср авг 30, 2017 17:22:17 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4875
Откуда: Минск
Рейтинг сообщения: 1
Нет. Адрес неправильный и STOP должен быть один

P.S. Да и очищать нужно всё, а не кусок памяти. Должно быть что-то вроде:
Спойлер
Код:
void eeprom_write_page(uint16_t address, unsigned char data)
{
    uint8_t y;

    i2c_start();
    i2c_write(Ext_EEPROM_Adr);
    i2c_write(address >> 8);
    i2c_write(address & 0xFF);
    for (y = 0; y < 64; y++) {
        i2c_write(data);
    }
    i2c_stop();
}

void clear_all()
{
    uint16_t x;
    for(x = 0; x < 512; x++) {
        eeprom_write_page(x, 0xFF);
    }
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Чт сен 07, 2017 12:11:57 
Нашел транзистор. Понюхал.

Карма: 5
Рейтинг сообщений: 7
Зарегистрирован: Вс дек 10, 2006 19:26:13
Сообщений: 198
Рейтинг сообщения: 0
На вход Т1 таймера постоянно поступают импульсы, широкий импульс-1, короткий-0, импульсов-36, начало определяется самым широким импульсом, равным периоду. Надо измерять длительности импульсов и записывать эти нули и единицы в переменную. Как это сделать? Мне бы посмотреть код для такой цели.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт сен 08, 2017 18:16:22 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6618
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
настраивай прерывание по захвату, в прерывании:
если иср1>10 //проверка дребезга
{тсср1-=иср1; //сброс таймера для след. замера
приемник=приемник<<1; //продвигаем переменную приемник
//если (иср1 < 100) короткий импульс (точка) действий нет
если (иср1 > 100) приемник++; //тире
если (иср1 > 1000) приемник=0; // стартовый импульс
};
// это для постоянной скорости

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вс сен 10, 2017 14:26:26 
Нашел транзистор. Понюхал.

Карма: 5
Рейтинг сообщений: 7
Зарегистрирован: Вс дек 10, 2006 19:26:13
Сообщений: 198
Рейтинг сообщения: 0
Ivanoff-iv писал(а):
прерывание по захвату
Но прерывание по захвату работает с ножки ICP, а тут счетный вход Т1. Остается вариант в цикле смотреть ногу, запускать таймер и смотреть длительность.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн сен 11, 2017 15:45:58 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6618
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
получается так... ногу придется использовать как вход порта, а не по железной доп. возможности.

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Сб сен 23, 2017 08:35:41 
Родился

Карма: 2
Рейтинг сообщений: 0
Зарегистрирован: Пт авг 12, 2011 19:45:59
Сообщений: 13
Рейтинг сообщения: 0
Всем привет. Помогите с кодом. Нужно вставить таймер отключения для HL1 через минуту его работы. и осталась функция раньшего отключения по S1 как реализовано у меня

Код:
Chip type               : ATtiny13A
AVR Core Clock frequency: 1,200000 MHz
Memory model            : Tiny
External RAM size       : 0
Data Stack size         : 16
*******************************************************/

#include <tiny13a.h>
#include <delay.h>
#define S1 PINB.3
#define S2 PINB.4
#define HL1 PORTB.2
#define HL2 PORTB.1
#define OFF 1
#define ON 0
#define HOLD 200 // время равно: секунда * 100

unsigned char counter1;
unsigned char counter2;
unsigned char trigger;
unsigned char blink;


void main(void)
{


DDRB= (0<<DDB5)  | (0<<DDB4)  | (0<<DDB3)  | (1<<DDB2)  | (1<<DDB1)  | (0<<DDB0);
PORTB=(0<<PORTB5)| (1<<PORTB4)| (1<<PORTB3)| (0<<PORTB2)| (0<<PORTB1)| (0<<PORTB0);

ACSR=(1<<ACD);

// Watchdog Timer Prescaler: OSC/64k
#pragma optsize-
WDTCR=(0<<WDTIF) | (0<<WDTIE) | (0<<WDP3) | (1<<WDCE) | (1<<WDE) | (1<<WDP2) | (0<<WDP1) | (1<<WDP0);
WDTCR=(0<<WDTIF) | (0<<WDTIE) | (0<<WDP3) | (0<<WDCE) | (1<<WDE) | (1<<WDP2) | (0<<WDP1) | (1<<WDP0);
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif


while (1)
      {
       
       if(S1==OFF&&S2==OFF&&HL1==0&&trigger==0)
        {
         MCUCR=(1<<SE)|(1<<SM1);
         #asm("sleep")        //  засыпаем
        }
       
       if(S1==ON&&HL1==0)
        {
         if(counter1=200)counter1++;
         else HL1=1;
        }       
       
       if(S1==OFF)counter1=0; 
       if(S1==ON&&HL1==1&&counter1==0)HL1=0;
       
        if(S2==ON&&trigger==0)
        {
         if(counter2<200)counter2++;
         else trigger=1;
        }
       if(S2==OFF)counter2=0; 
       if(S2==ON&&trigger==1&&counter2==0)trigger=0;
       
       if(trigger)
        {
         if(blink<40)blink++;
         else blink=0;
         if(blink<20)HL2=1;
         else HL2=0;
        }
       else
        {
         blink=0;
         HL2=0;
        }
       
       
       #asm("wdr")
       delay_ms(10);
      }
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вс сен 24, 2017 18:46:53 
Нашел транзистор. Понюхал.

Карма: 5
Рейтинг сообщений: 7
Зарегистрирован: Вс дек 10, 2006 19:26:13
Сообщений: 198
Рейтинг сообщения: 0
получается так... ногу придется использовать как вход порта, а не по железной доп. возможности.

Прошу раскритиковать,если что..
Т.к. мне нужно знать длительность импульса в узко конкретном диапазоне -до 200 us и не нужно знать точную длит.,а просто для сравнения с каким то значением, сделал так-настроил таймер на 250 кгц( но с кварцем в проекте 16 мгц, в Протеусе на 8 мгц-только так корректно работает), и по спаду импульса считаю длит. по TCNT0, диапазон получается до 30, вполне можно работать. А с 16 и 8 мгц я что-то не понял.
Код:
    if(!PINC.0){                              // если нога упала
                TCCR0=0x03;                   // включаем таймер
                while(!PINC.0);               // ждем,когда нога поднимется
          tik=TCNT0;                          // счетчик передаем переменной
          TCCR0=0x00; TCNT0=0;                // обнуляем ,выкл.таймер         
          lcd_gotoxy(1,0);
          sprintf(lcd_buffer," %i   ",tik);   // показать на индикаторе значение длит.
          lcd_puts(lcd_buffer);     
                 }


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн сен 25, 2017 20:25:11 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6618
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
если такая длительность маленькая, может и не тревожить таймер а обойтись программными задержками как поймал прерывание задержка антидребезга, перепроверил ногу — отпущена - выходим, нет - делаем нужную задержку потом проверяем снова отпущена - короткий, ещё нажата - длинный (можно ещё флаг прерывания проверить - убедиться, что это одно длинное нажатие, а не несколько коротких — при одном длинном флаг будет сброшен).

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн сен 25, 2017 21:23:52 
Нашел транзистор. Понюхал.

Карма: 5
Рейтинг сообщений: 7
Зарегистрирован: Вс дек 10, 2006 19:26:13
Сообщений: 198
Рейтинг сообщения: 0
Прерывание тут вообще не используется. А в чем проблема-тревожить таймер? Пусть тикает-это его работа.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт сен 26, 2017 09:45:37 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6618
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Прерывание тут вообще не используется.
А зря: промежуток довольно маленький и желательно максимально точно отследить его начало, но постоянно проверять порт - довольно неудобно, да и процессор нагружает.
Правда, вспоминаю, было ограничение на используемую ногу - если на ней нет прерывания, то его, к сожалению и не использовать...

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Сб сен 30, 2017 18:35:54 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Пт фев 13, 2009 20:58:13
Сообщений: 601
Откуда: Донецк
Рейтинг сообщения: 0
Ребята, доброго времени суток.
Пытаюсь подружить мегу8 и PCF8574.

Собственно делаю всё по инструкции ДШ.

I2C программный, настроен на те же ноги, что и аппаратный.
Адрес микросхемы 0x40, ноги А0-А2 подтянуты на землю.

Никакого шевеления выходов микросхемы не вижу...

Вроде кода-то "кот наплакал" :cry: , а что-то работать не хочет ...

Код:
#include <mega8.h>
#include <delay.h>
#include <i2c.h>           


// I2C Bus functions
#asm
   .equ __i2c_port=0x15 ;PORTC
   .equ __sda_bit=4
   .equ __scl_bit=5
#endasm

#define PCF8574_BUS_ADDRESS 0x40

/* write a byte to the PCF8574 */
void PCF8574_write(unsigned char data) {

i2c_start();
i2c_write(PCF8574_BUS_ADDRESS);
i2c_write(data);
i2c_stop();

/* 10ms delay to complete the write operation */
delay_ms(10);
}


void main(void) {

/* initialize the I2C bus */
i2c_init();

while (1)
{
PCF8574_write(0xFF);
delay_ms(500);
PCF8574_write(0x00);
delay_ms(500);

};

}

_________________
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Сб сен 30, 2017 20:33:13 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4875
Откуда: Минск
Рейтинг сообщения: 4
Точно уверены, что именно на землю, а не к питанию, подтянуты входы расширения?

Ну и ещё у PCF8574 базовый адрес 0x40, а у PCF8574A - 0x70, так что ещё дело может быть и в этом.

Ещё момент: микросхема может выдать "честный" ноль, но по единице уже нет. Поэтому если там на выходе у Вас вдруг светодиод, нужно подключать его (с резистором, естественно) между ножкой и питанием, а не между ножкой и землёй.


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

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


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

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


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

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


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