Например TDA7294

Форум РадиоКот • Просмотр темы - ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Чт ноя 06, 2025 23:56:15

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


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



Начать новую тему Ответить на тему  [ Сообщений: 2636 ]     ... , , , 14, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс авг 31, 2008 15:04:40 
Открыл глаза

Зарегистрирован: Вт авг 28, 2007 10:53:49
Сообщений: 51
Рейтинг сообщения: 0
ничего не понимаю... с компаратором А работает....
а вот с Б, нет,,
Какк только в ТИМСК меняю на Б, то не хочет работать... уходит в непонятное место... и пишет неопределен адрес...
invalid opcode 0xffff at adress 0x00000c


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс авг 31, 2008 15:20:09 
Открыл глаза

Зарегистрирован: Вт авг 28, 2007 10:53:49
Сообщений: 51
Рейтинг сообщения: 0
ввобщем Program Counter становиться красынм и там адрес 0x0000C
и Staick Pointer тоже крачные 0xFE


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 02, 2008 16:07:42 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Пн апр 14, 2008 19:57:20
Сообщений: 346
Рейтинг сообщения: 0
А у tiny2313 цоколёвка такая же как у AT90s2313 ??


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 02, 2008 16:10:04 
Открыл глаза

Зарегистрирован: Вт авг 28, 2007 10:53:49
Сообщений: 51
Рейтинг сообщения: 0
да, абс такая же.....


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 02, 2008 20:04:31 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Пн апр 14, 2008 19:57:20
Сообщений: 346
Рейтинг сообщения: 0
Денис203 писал(а):
да, абс такая же.....


СПасибо!!!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср сен 03, 2008 09:38:25 
Открыл глаза

Зарегистрирован: Вт авг 28, 2007 10:53:49
Сообщений: 51
Рейтинг сообщения: 0
добрый день! а вот подскажите такой момент... пишу такую прогу.... светодиодик мигает снчала с одной частотой,, в регистре r30 копится число, пока не станет =5,,, зтем частота моргания меняется....
так вот вопрос в том, что в АВРстудио все четко работает....
а в реале,, ну никак не 5 число в регистре.... он очень уж долго моргает с первой частотой....
что неправильно? или с чем это связано?

.org 19
RESET:
ldi r16,RAMEND;
out SPL,r16

START:
ldi r17,0b00100000
out TIMSK,r17
ldi r18,0b00000010
out OCR1BH,r18
ldi r19,0b00100111
out OCR1BL,r19
ldi r18,0b00000001
out TCCR1B,r18
ldi r19,0b00000001
out DDRB,r19
ldi r24,0b00000001
out portb,r24
sei

starting:
cpi r30,0b00000101
breq main_2
rjmp starting
main_2:
ldi r18,0
out PortB,r18
ldi r24,0b00000000
out ocr1bh,r24
ldi r24,0b10011111
out ocr1bl,r24
ldi r23,0
out tcnt1l,r23
out tcnt1h,r23
sbi portb,0
main_3:rjmp main_3

А подпрограмма вот:
TIMER1_COMPB:
inc r30
ldi r20,0b00000001
in r21,portb
eor r20,r21
out portb,r20
ldi r22,0
out tcnt1l,r22
out tcnt1h,r22
reti


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср сен 03, 2008 10:38:24 
Мучитель микросхем

Зарегистрирован: Вт июл 22, 2008 08:10:54
Сообщений: 492
Рейтинг сообщения: 0
Денис203 писал(а):
добрый день! а вот подскажите такой момент... пишу такую прогу.... светодиодик мигает снчала с одной частотой,, в регистре r30 копится число, пока не станет =5,,, зтем частота моргания меняется....
так вот вопрос в том, что в АВРстудио все четко работает....
а в реале,, ну никак не 5 число в регистре.... он очень уж долго моргает с первой частотой....
что неправильно? или с чем это связано?

Может с тактовой частотой?


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср сен 03, 2008 10:39:49 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Пн сен 01, 2008 21:56:44
Сообщений: 28
Откуда: Балашиха
Рейтинг сообщения: 0
Денис203 писал(а):
в АВРстудио все четко работает....

Дак и выложи проект Студии архивом.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср сен 03, 2008 14:57:59 
Открыл глаза

Зарегистрирован: Вт авг 28, 2007 10:53:49
Сообщений: 51
Рейтинг сообщения: 0
выкладываю... посмотрите плиз...


Вложения:
проект.rar [4.56 KiB]
Скачиваний: 449
Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср сен 03, 2008 18:16:30 
Мучитель микросхем

Зарегистрирован: Вс июн 01, 2008 12:16:38
Сообщений: 459
Рейтинг сообщения: 0
Денис203 писал(а):
добрый день! а вот подскажите такой момент...
.org 19
....
А подпрограмма вот:
TIMER1_COMPB:
inc r30
ldi r20,0b00000001
in r21,portb
eor r20,r21
out portb,r20
ldi r22,0
out tcnt1l,r22
out tcnt1h,r22
reti


Первое что бросается в глаза - Вы не сохраняете значение регистра состояния процессора - S при входе в прерывания и не восстанавливаете его при выходе, отсюда скорее всего неправильная работа программы. Второе - какова тактовая частота контрорллера и рассчетная частота "мигания"?
Следующее просто советы:
а) при инициализации регистров ввода вывода - настройка таймеров и тп. предпочтительно не применять записи вида
Код:
ldi r17,0b00100000
out TIMSK,r17
а пользоваться таким типом записей :
Код:
ldi r17, (1<<OCIE1A)|(1<<OCIE1B)
out TIMSK,r17

б) при оформленни постов приветствуется использование тегов code


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср сен 03, 2008 18:23:11 
Открыл глаза

Зарегистрирован: Вт авг 28, 2007 10:53:49
Сообщений: 51
Рейтинг сообщения: 0
про code не совсем понял... можно с примером?
а про первую запись.... тоже не совсем... не совсем понятно, что записывается в регистр


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср сен 03, 2008 18:55:42 
Мучитель микросхем

Зарегистрирован: Вс июн 01, 2008 12:16:38
Сообщений: 459
Рейтинг сообщения: 0
Денис203 писал(а):
про code не совсем понял... можно с примером?
а про первую запись.... тоже не совсем... не совсем понятно, что записывается в регистр

Как все запущено. Попробую объяснить кратко, но лучше наверное где-то почитате еще.
1. Про регистр состояния процессора - регистр, в котором отображается значение флагов процессора (прерывание, флаг T, флаг переноса, флаг нуля и др.). Некоторые команды процессора (все арифметические, sei, cli и др - подробнее см. систему команд) могут изменять состояние флагов, т. о. в регистре хранится текущее состоянии флагов. По флагам, а также по значениям регистров участвующих в выполнении(последнее не всегда - пример команда cpi), в принципе, и определяется результат выполнения арифметических команд, например команды cpi, если значение регистра и константы с которой он сравнивается равны, то выставляется флаг нуля (Z) который может анализироваться например командой перехода (как у вас в программе) breq - переход если 0. Когда выполняется обслуживание прерывания, то основной цикл программы прерывается, процессор производит какие-то действия и возвращается к основной программе. Дело в том, что при входе в прерывания, у данного семейства МК регистр состояния автоматически нигде не запоминается, поэтому при выполнении команд, изменяющих флаги состояиния в прерывании значение регистра состояния может измениться по сравнению с тем, каким оно было при входе в подпрограмму обслуживания. При выходе из прерываний Вы получаете искаженное значение регистра.
Теперь как с этим бороться. Все просто при входе в прерывания нужно сохранить регистр флагов либо в каком нибудь "ненужном " (не используемом во всей программе) регистре :), либо в стеке - последнее правильней. Соответсвенно при выходе из прерываний нужно восстановить сохраненное ранее значение.
Применительно к Вашей подпрограмме можно сделать так:
Код:
TIMER1_COMPB:
push r16 ; сохраняем предыдущее значение r16 в стек - мало ли что в нем хранилось до этого
in r16, SREG; читаем значение статус-регистра в r16 -
push r16 ; сохраняем r16 в стек
inc r30
ldi r20,0b00000001
in r21,portb
eor r20,r21
out portb,r20
ldi r22,0
out tcnt1l,r22
out tcnt1h,r22
pop r16; вытаскиваем значение, соответсвующее состоянию статус-регистра до входа в прерывания, из стека
out SREG, r16; восстанавливаем значение статус регистра
pop r16 ; вытаскиваем значение регистра r16 из стека
reti

2. про теги code -все просто при вставке куска программы в пост мы выделяем его и нажимаем кнопку code (находится над окном ввода)


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Чт сен 04, 2008 19:33:15 
Опытный кот
Аватар пользователя

Зарегистрирован: Сб янв 05, 2008 11:05:15
Сообщений: 849
Откуда: Україна м.Луцьк
Рейтинг сообщения: 0
Нуждаюсь в помощи с прошивкой на Си. Должен выйти двухточечный термометр но не получается. Проблема в том что я не умею выводить информацию с 2 датчиков на 1 индикатор. Правда било бы луче выводить температуру с датчиков отдельно на 2 индикатора по 3 цифры но это я тоже не умею. В архиве проект CVAVR и Proteus.


Вложения:
Копия termometr.rar [71 KiB]
Скачиваний: 436

_________________
Я не Сашок!!!
Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Чт сен 04, 2008 22:05:48 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
sachok писал(а):
Нуждаюсь в помощи с прошивкой на Си. Должен выйти двухточечный термометр но не получается.

ПОЛУЧИЛСЯ !!! Вы не поверите !

Добавил счетчик переключающий термометры каждые 9 сек примерно. Моделировал в PROTEUS 7.2 работает на модели старого AVR2313

Но в PROTEUS 7.4 есть моделька Тини2313 !

В реале нужно резисторы (примерно по 560 Ом) поставить на сегменты !

Изображение

Архив содержит еще и шаблон для быстрого старта в CVAVR VMLAB WinAVR PROTEUS.


Вложения:
2x DS18b20 7segLED CVAVR PROTEUS.rar [97.88 KiB]
Скачиваний: 624

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт сен 05, 2008 13:54:57 
Опытный кот
Аватар пользователя

Зарегистрирован: Сб янв 05, 2008 11:05:15
Сообщений: 849
Откуда: Україна м.Луцьк
Рейтинг сообщения: 0
СПАСИБО tych!!! :) Все понял...

_________________
Я не Сашок!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт сен 05, 2008 18:50:09 
Опытный кот
Аватар пользователя

Зарегистрирован: Сб янв 05, 2008 11:05:15
Сообщений: 849
Откуда: Україна м.Луцьк
Рейтинг сообщения: 0
С переключением между индикаторами разобрался. Теперь хочу что бы когда, например, показывает температуру датчика 1 на ножке МК появлялась лог.1, а когда идёт индикация температуры датчика 2 то на той же ножке МК был лог.0.
Код:
      if (big_ctr < 1)
      {
        j=0;
        PORTD.5=0;
      }
      else
      { 
      j=1;
      PORTD.5=1;
      }

Вот кусочек кода как я это делал но так не работает. Полный код выше в сообщении от tych. Правильно ли я думаю что при использовании побитового доступа к портам нужно каждый бит настраивать отдельно? Вот как у меня настроины порты
Код:
PORTD=0xFF;
DDRD=0x3F;

_________________
Я не Сашок!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт сен 05, 2008 19:07:05 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
sachok писал(а):
Правильно ли я думаю что при использовании побитового доступа к портам нужно каждый бит настраивать отдельно?

Можно и так сказать, но запись в регистр может быть и одна.

Напиши:
Код:
DDRD.5 = 1;

Не ошибешСИ !

Возможно порт-Д не достижим так в CVAVR, тогда используй операции над битами как в задаче 1 у меня в курсе.

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт сен 05, 2008 20:57:17 
Опытный кот
Аватар пользователя

Зарегистрирован: Сб янв 05, 2008 11:05:15
Сообщений: 849
Откуда: Україна м.Луцьк
Рейтинг сообщения: 0
Ничего не пойму... даже так делал и работать не хочет...
Код:
#define SET_D(x) |= (1<<x)
#define CLR_D(x) &=~(1<<x)
sfrb PORTD=0x12;
sfrb DDRD=0x11;
sfrb PIND=0x10;

_________________
Я не Сашок!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт сен 05, 2008 21:25:07 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
Сделай копию проекта выкинь все из него и оставь только дрыганье ножкой - может это из-за не той модели в PROTEUS - там же не тини применили.

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс сен 21, 2008 14:37:31 
Встал на лапы
Аватар пользователя

Зарегистрирован: Вс сен 09, 2007 12:59:18
Сообщений: 111
Рейтинг сообщения: 0
У меня проблема с программированием tiny2313. Вставляю в программатор АТ904433 - все ОК! Проблема в том, что на выводах внешнего кварца нет колебаний. Внутренний генератор МК tiny2313 не работает. В чем дело ?


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

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


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

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


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

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


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