Страница 159 из 280
Re: Proteus: вопросы и ответы
Добавлено: Чт апр 25, 2013 00:02:42
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 бит получается, т.е. переполнение раз в секунду. Но при симуляции нога дергается раз в две секунды. Где накосячил?
Re: Proteus: вопросы и ответы
Добавлено: Чт апр 25, 2013 00:39:08
alex1126
кажется догоняю...... 32768/256=10000000b. Но переполнение произойдет после 11111111b. т.е. получаем те самые две секунды.....
Re: Proteus: вопросы и ответы
Добавлено: Чт апр 25, 2013 11:55:51
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) {};
}
Re: Proteus: вопросы и ответы
Добавлено: Чт апр 25, 2013 21:20:40
Alex-DJ
Скажите пожалуйста,где можно взять проект под протеус демонстрирующий работу SD-card,запись байта и считывание байта? Документации и все статьи почти про карты прочитал,но суть её работы пока не понятен.
Re: Proteus: вопросы и ответы
Добавлено: Чт апр 25, 2013 21:52:54
ChipKiller
где можно взять проект под протеус
.. зачем PROTEUS? смотрите
здесь или
здесь
Re: Proteus: вопросы и ответы
Добавлено: Чт апр 25, 2013 22:20:43
Alex-DJ
ChipKiller, читал я это всё,не доходит до меня....

Хочется пощупать работающий вариант.Нпример неясно с командами:
команда 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 байтов?
Re: Proteus: вопросы и ответы
Добавлено: Чт апр 25, 2013 22:25:28
ChipKiller
Но почему её пишут как 6 байтов,откуда остальные 5 байтов появились?
... если это вопрос про CMD0
0x40 - код команды
0x0, 0x0, 0x0, 0x0 - параметр
0x95 - CRC
Re: Proteus: вопросы и ответы
Добавлено: Чт апр 25, 2013 22:30:10
Alex-DJ
Вообщем остаюсь при своём желании иметь демонстрационный проект в протеусе,поясняющий работу карты,запись байта и считывание байта.Если таковой имеется в природе буду благодарен если ткнёте носом в ссылочку.Поиски по просторам тырнета пока не увенчались успехом.
Re: Proteus: вопросы и ответы
Добавлено: Чт апр 25, 2013 22:31:20
Murka
Re: Proteus: вопросы и ответы
Добавлено: Чт апр 25, 2013 22:35:41
Alex-DJ
я это уже сто раз перечитал ... вот

вот покажите мне там что помимо самой команды 0x40 нужно посылать 0x0, 0x0, 0x0, 0x0 - параметр
0x95 - CRC
Обмен начинается с того, что МК выставляет сигнал 0 на xCS. Сначала посылаем 6 байт команды - последовательно пишем в вышеуказанный SSPBUF нужные байты, не забывая перед записью очередного дожидаться окончания передачи предыдущего (бит SSPSTAT,BF). Далее нужно дождаться ответа карты: пишем в SPI байт 0xFF и по окончании каждой передачи (контролируем SSPSTAT,BF) читаем принятое в SSPBUF. Первый байт, отличный от 0xFF, будет первым байтом ответа карточки (а для рассматриваемых ниже команд ответ всегда состоит из 1 байта).
ЭТО НАПИСАНО ДЛЯ АКАДЕМИКОВ,а мне нужно на человеческом языке.
Re: Proteus: вопросы и ответы
Добавлено: Чт апр 25, 2013 22:52:19
ChipKiller
буду благодарен если ткнёте носом в ссылочку
...куда уж тыкать дальше
рабочий пример - пару лет назад проверял на AVR
Re: Proteus: вопросы и ответы
Добавлено: Чт апр 25, 2013 22:57:03
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
Мне бы пока на элементарном работающем МАКЕТЕ попробовать.
Ай нид хелп ))
Добавлено: Пт апр 26, 2013 10:14:07
denism300
Решил смоделировать
этот проект в Proteus, вроде как почти все работает на первый взгляд, но есть 2 ньюанса:
1. Не отображаются показания с датчиков температуры
2. Какая-то беда с кодировкой символов
Помогите разобраться. Файл проекта во вложении. Спасибо заранее
Re: Ай нид хелп ))
Добавлено: Пт апр 26, 2013 11:46:24
Soir
denism300 писал(а):Решил смоделировать
этот проект в Proteus, вроде как почти все работает на первый взгляд, но есть 2 ньюанса:
1. Не отображаются показания с датчиков температуры
2. Какая-то беда с кодировкой символов
1. На датчики (и не только) надо подать питание. И установить им разные серийные номера.
2. Для кириллицы нужен файл LCDALPHA.DLL (во вложении). Поместите его в папку с проектом или в папку MODELS с установленной программой.
3. Есть и другие ошибки, читайте предупреждения.
Во вложении слегка поправленный проект.
Re: Proteus: вопросы и ответы
Добавлено: Пт апр 26, 2013 22:02:16
poloptv
Доброго времени суток. Если я правильно понял то эта тема посвящена протеусу и здесь есть люди которые хорошо разбираются в этой программе. Так вот я подумал может кто-нибудь из вас поможет мне. Вот проект:
http://cxema.my1.ru/publ/skhemy_ustrojs ... 9-1-0-3974
есть люди которые могли бы собрать эту схему в протеус? Просто я с протеусам не сильно дружу пытаюсь разобраться но как то тяжко очень так вот решил попросить помощи у профи. Помогите плиз.
Re: Proteus: вопросы и ответы
Добавлено: Вс апр 28, 2013 10:48:40
unalex
poloptv писал(а):может кто-нибудь из вас поможет мне
это из разряда "нарисуйте мне схему, а то мне лень"?
берем детальки, кидаем на поле, тянем связи
в чем сложности?
Re: Proteus: вопросы и ответы
Добавлено: Вс апр 28, 2013 11:28:17
Orion33
— Вы, чего, и конфеты за меня есть будете?
— Ага!

Re: Proteus: вопросы и ответы
Добавлено: Вс апр 28, 2013 12:26:06
vitok8
Как быть, если программа написана под LCD MT-16S2D(есть только HEX), а надо работу посмотреть в протеусе? На LM016L не катит(крякозябры). Искал модель LCD MT-16S2D - не нашел. Есть ли выход из этого положения?
Re: Proteus: вопросы и ответы
Добавлено: Вс апр 28, 2013 12:36:02
Soir
vitok8 писал(а):На LM016L не катит(крякозябры). Искал модель LCD MT-16S2D - не нашел.
В предыдущем своем
сообщении выкладывал DLL, с ней LM016L должен покатить.
Re: Proteus: вопросы и ответы
Добавлено: Вс апр 28, 2013 12:47:09
vitok8
Я уже пробовал.К сожалению не катит. Это промышленное устройство и в железе на этом индикаторе работает четко.