Proteus: вопросы и ответы

Обсуждаем цифровые устройства...
alex1126
Вымогатель припоя
Сообщения: 567
Зарегистрирован: Ср дек 19, 2012 12:16:22

Re: Proteus: вопросы и ответы

Сообщение alex1126 »

Что то с таймерами у меня не получается. Вообще задача:
Надо для атмеги16 задать внешний кварц часовой и каждую секунду дрыгать ножкой.

Берем атмегу. К XTAL1 и XTAL2 подключаем кварц, указываем там частоту 32768. Заходим в свойства МК, указываем CKSEL 1001, частоту указываем 32768. С "железом" все.


ISR( TIMER0_OVF_vect ){
lcd_dat('g');
if( PINC & ( 1 << PC0 ) ) {
PORTC &= ~( 1 << PC0 );
}
else {
PORTC |= ( 1 << PC0 );
}
}

...

TCCR0 = (1<<CS02)|(0<<CS01)|(0<<CS00);
TIMSK |= (1<<TOIE0); // разрешаем прерывание по переполнению таймера
sei();


по идее частота 32768, делитель 256, как раз 8 бит получается, т.е. переполнение раз в секунду. Но при симуляции нога дергается раз в две секунды. Где накосячил?
alex1126
Вымогатель припоя
Сообщения: 567
Зарегистрирован: Ср дек 19, 2012 12:16:22

Re: Proteus: вопросы и ответы

Сообщение alex1126 »

кажется догоняю...... 32768/256=10000000b. Но переполнение произойдет после 11111111b. т.е. получаем те самые две секунды.....
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Re: Proteus: вопросы и ответы

Сообщение a_skr »

зачем по переполнению? можно по совпадению:

Код: Выделить всё

#include <avr/io.h>
#include <avr/interrupt.h>

ISR(SIG_OUTPUT_COMPARE0)
{
  PORTC ^= 1;
}

void main(void)
{
  DDRC = 1;
  OCR0 = 31; // timer compare register
  TCCR0 = (1<<WGM01) | // CTC
          (1<<CS02) | (1<<CS00); // 32768/1024=32, timer start
  TIMSK = (1<<OCIE0); // compare match interrupt enable
  sei(); // global interrupt enable
  while(1) {};
}
Alex-DJ
Встал на лапы
Сообщения: 127
Зарегистрирован: Ср апр 06, 2011 13:41:11

Re: Proteus: вопросы и ответы

Сообщение Alex-DJ »

Скажите пожалуйста,где можно взять проект под протеус демонстрирующий работу SD-card,запись байта и считывание байта? Документации и все статьи почти про карты прочитал,но суть её работы пока не понятен.
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Proteus: вопросы и ответы

Сообщение ChipKiller »

где можно взять проект под протеус
.. зачем PROTEUS? смотрите здесь или здесь
Alex-DJ
Встал на лапы
Сообщения: 127
Зарегистрирован: Ср апр 06, 2011 13:41:11

Re: Proteus: вопросы и ответы

Сообщение Alex-DJ »

ChipKiller, читал я это всё,не доходит до меня.... :shock: Хочется пощупать работающий вариант.Нпример неясно с командами:
команда CMD0 0x40 это вроде один байт но.....
После того как вы вставили карту в слот вам необходимо проинициализировать карту.
-при высоком уровне сигнала CS послать на карту 10 раз данные 0xFF
-выждать несколько милисекунд
-послать команду CMD0 ( 0x40, 0x0, 0x0, 0x0, 0x0, 0x95 ) на что карта должна ответить 0x01
-послать команду CMD1 на что карта должна ответить 0x00 (если необходимо этот этап нужно повторять несколько раз, пока не дождетесь нужного ответа от карты)
-послать команду CMD16 это мы устанавливаем размер блока обычно это 512 байт

Но почему её пишут как 6 байтов,откуда остальные 5 байтов появились?

В другом источнике:
- достаточно 74 раза дернуть CLK (из 0 в 1)

- посылаем 1 байт 0xFF
xCS в "0"
далее саму команду CMD0
0x40, 0x00, 0x00, 0x00, 0x00, 0x95
читаем и ждем пока не придет ответ от карты 0x01

- xCS в "1"
посылаем 1 байт 0xFF
xCS в "0"
далее саму команду CMD1
0x41, 0x00, 0x00, 0x00, 0x00, 0xFF

читаем и ждем пока не придет ответ от карты 0x00

- xCS в "1"
посылаем 1 байт 0xFF
и т.д.


Вроде команда #define CMD1 0x41 // brings card out of idle state
тоже один байт,но откуда ещё 5 байтов?
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Proteus: вопросы и ответы

Сообщение ChipKiller »

Но почему её пишут как 6 байтов,откуда остальные 5 байтов появились?
... если это вопрос про CMD0
0x40 - код команды
0x0, 0x0, 0x0, 0x0 - параметр
0x95 - CRC
Alex-DJ
Встал на лапы
Сообщения: 127
Зарегистрирован: Ср апр 06, 2011 13:41:11

Re: Proteus: вопросы и ответы

Сообщение Alex-DJ »

Вообщем остаюсь при своём желании иметь демонстрационный проект в протеусе,поясняющий работу карты,запись байта и считывание байта.Если таковой имеется в природе буду благодарен если ткнёте носом в ссылочку.Поиски по просторам тырнета пока не увенчались успехом.
Аватара пользователя
Murka
Мучитель микросхем
Сообщения: 441
Зарегистрирован: Ср июн 03, 2009 00:20:21
Откуда: Новороссия ЛНР Рубежное -> РФ Калуга
Контактная информация:

Re: Proteus: вопросы и ответы

Сообщение Murka »

Политика России будет выглядеть неоднозначной до тех пор, пока не будет решен исход битвы.
Свободу можно завоевать, можно просрать, но высидеть свободу нельзя! ©
Всё, что меня не убивает - делает большую ошибку!
Не зли меня!!! :wink:
Alex-DJ
Встал на лапы
Сообщения: 127
Зарегистрирован: Ср апр 06, 2011 13:41:11

Re: Proteus: вопросы и ответы

Сообщение Alex-DJ »


я это уже сто раз перечитал ... вот
Изображение
вот покажите мне там что помимо самой команды 0x40 нужно посылать 0x0, 0x0, 0x0, 0x0 - параметр
0x95 - CRC

Обмен начинается с того, что МК выставляет сигнал 0 на xCS. Сначала посылаем 6 байт команды - последовательно пишем в вышеуказанный SSPBUF нужные байты, не забывая перед записью очередного дожидаться окончания передачи предыдущего (бит SSPSTAT,BF). Далее нужно дождаться ответа карты: пишем в SPI байт 0xFF и по окончании каждой передачи (контролируем SSPSTAT,BF) читаем принятое в SSPBUF. Первый байт, отличный от 0xFF, будет первым байтом ответа карточки (а для рассматриваемых ниже команд ответ всегда состоит из 1 байта).


ЭТО НАПИСАНО ДЛЯ АКАДЕМИКОВ,а мне нужно на человеческом языке.
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Proteus: вопросы и ответы

Сообщение ChipKiller »

буду благодарен если ткнёте носом в ссылочку
...куда уж тыкать дальше рабочий пример - пару лет назад проверял на AVR
Alex-DJ
Встал на лапы
Сообщения: 127
Зарегистрирован: Ср апр 06, 2011 13:41:11

Re: Proteus: вопросы и ответы

Сообщение Alex-DJ »

ПФФФФ ( я вам сколько постов объясняю что мне нужен работающий макет в протеусе,а вы мне эту абракадабру:
Ниже приведён код программы на СИ (компилятор CC5x):
// Чтение файла из 64 Мб MMC-памяти под FAT16
// Последовательный интерфейс (9600,n,8,1) на 20MHz
// Компилятор CC5x

#include
#pragma config |= 0b.11.111101.11.00.10
#pragma bit CS @ PORTC.2 // Выход для выбора микросхемы CS

uns16 AL, BytN,ByteLes,Claster,FAT,Verz,Dat; // Объявляем переменные
char AH ;

#pragma origin 100

Мне бы пока на элементарном работающем МАКЕТЕ попробовать.
denism300
Родился
Сообщения: 3
Зарегистрирован: Пт апр 26, 2013 10:00:00

Ай нид хелп ))

Сообщение denism300 »

Решил смоделировать этот проект в Proteus, вроде как почти все работает на первый взгляд, но есть 2 ньюанса:
1. Не отображаются показания с датчиков температуры
2. Какая-то беда с кодировкой символов

Помогите разобраться. Файл проекта во вложении. Спасибо заранее
Вложения
BK.rar
(21.22 КБ) 190 скачиваний
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Ай нид хелп ))

Сообщение Soir »

denism300 писал(а):Решил смоделировать этот проект в Proteus, вроде как почти все работает на первый взгляд, но есть 2 ньюанса:
1. Не отображаются показания с датчиков температуры
2. Какая-то беда с кодировкой символов

1. На датчики (и не только) надо подать питание. И установить им разные серийные номера.
2. Для кириллицы нужен файл LCDALPHA.DLL (во вложении). Поместите его в папку с проектом или в папку MODELS с установленной программой.
3. Есть и другие ошибки, читайте предупреждения.
Во вложении слегка поправленный проект.
Вложения
BK.ZIP
(116.6 КБ) 195 скачиваний
poloptv
Родился
Сообщения: 4
Зарегистрирован: Вс апр 17, 2011 13:10:19

Re: Proteus: вопросы и ответы

Сообщение poloptv »

Доброго времени суток. Если я правильно понял то эта тема посвящена протеусу и здесь есть люди которые хорошо разбираются в этой программе. Так вот я подумал может кто-нибудь из вас поможет мне. Вот проект:
http://cxema.my1.ru/publ/skhemy_ustrojs ... 9-1-0-3974
есть люди которые могли бы собрать эту схему в протеус? Просто я с протеусам не сильно дружу пытаюсь разобраться но как то тяжко очень так вот решил попросить помощи у профи. Помогите плиз.
Аватара пользователя
unalex
Мучитель микросхем
Сообщения: 424
Зарегистрирован: Сб авг 25, 2007 22:02:05
Откуда: Германия, Viernheim

Re: Proteus: вопросы и ответы

Сообщение unalex »

poloptv писал(а):может кто-нибудь из вас поможет мне


это из разряда "нарисуйте мне схему, а то мне лень"?

берем детальки, кидаем на поле, тянем связи
в чем сложности?
Коктейль "Рекурсивный": 20% спирта, 30% воды, 50% коктейля "Рекурсивный"...
Orion33
Друг Кота
Сообщения: 4753
Зарегистрирован: Сб апр 21, 2012 19:21:43

Re: Proteus: вопросы и ответы

Сообщение Orion33 »

— Вы, чего, и конфеты за меня есть будете?
— Ага!
:tea:
vitok8
Открыл глаза
Сообщения: 79
Зарегистрирован: Чт дек 25, 2008 17:43:48

Re: Proteus: вопросы и ответы

Сообщение vitok8 »

Как быть, если программа написана под LCD MT-16S2D(есть только HEX), а надо работу посмотреть в протеусе? На LM016L не катит(крякозябры). Искал модель LCD MT-16S2D - не нашел. Есть ли выход из этого положения?
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Proteus: вопросы и ответы

Сообщение Soir »

vitok8 писал(а):На LM016L не катит(крякозябры). Искал модель LCD MT-16S2D - не нашел.

В предыдущем своем сообщении выкладывал DLL, с ней LM016L должен покатить.
vitok8
Открыл глаза
Сообщения: 79
Зарегистрирован: Чт дек 25, 2008 17:43:48

Re: Proteus: вопросы и ответы

Сообщение vitok8 »

Я уже пробовал.К сожалению не катит. Это промышленное устройство и в железе на этом индикаторе работает четко.
Последний раз редактировалось vitok8 Вс апр 28, 2013 12:54:24, всего редактировалось 1 раз.
Ответить

Вернуться в «Цифровая техника»