Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
27.03.2013, 20:48
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Вопросы по SD-Card in CodeVisionAVR
Сообщение от Frensis777
|
Товарищи, а с какой целью вызывается функция disk_timerproc() частотой в 100 Гц?
|
Эта функция имеет отношение к проверке статуса дисковых операций. Предотвращает возможные мертвые зависания. Я живу без нее. Но отслеживаю все поллинги счетчиками лимитов.
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
27.03.2013, 21:19
|
|
Прописка
Регистрация: 15.03.2009
Сообщений: 162
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Вопросы по SD-Card in CodeVisionAVR
Сообщение от ut1wpr
|
Эта функция имеет отношение к проверке статуса дисковых операций. Предотвращает возможные мертвые зависания. Я живу без нее. Но отслеживаю все поллинги счетчиками лимитов.
|
Ясно, спасибо.
Товарищи, собрал в Proteus'е 7.7 SP2 небольшую схемку: мк Atmega8+sd memory card, подключенная по интерфейсу SPI, информационный ЖКИ.
Суть пока сводится к простому-научиться инициализировать карту памяти. За основу взял пример инициализации с помощью низкоуровневой функции disk_initialize(0), приведенной в хелпе компилятора CodeVisionAVR.
Проблема--инициализация не проходит. Значение, возвращаемое функцией инициализации, я считаю, содержит все три ошибки("Disk init failed","Card write\nprotected", "Card not present"). Не знаю, может я не прав? Т.к. все три условия проверки на ошибки менял местами в исходном коде. И, допустим, то условие, которое стоит на проверку первым, оно и выводилось на дисплей. Т.е. если мы будем сперва проверять вот так:
PHP код:
|
if (status & STA_NODISK) lcd_puts("Card not present");
|
на дисплей выйдет ошибка "Card not present".
Если первым проверять условие:
PHP код:
|
if (status & STA_NOINIT) lcd_puts("Disk init failed");
|
на дисплей выйдет ошибка "Disk init failed"
В архиве сам проект для протеуса. Там же лежит файл образа карты sd.mmc, если Proteus будет ругаться, его нужно будет указать в свойствах карты. Там же лежит прошивка для мк. И в отдельной папочке находятся файлы исходного кода .c и .prj для CodeVisionAVR.
|
|
|
|
27.03.2013, 22:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Вопросы по SD-Card in CodeVisionAVR
Сообщение от Frensis777
|
Ясно, спасибо.
Товарищи, собрал в Proteus'е 7.7 SP2 небольшую схемку: мк Atmega8+sd memory card, подключенная по интерфейсу SPI, информационный ЖКИ.
Суть пока сводится к простому-научиться инициализировать карту памяти. За основу взял пример инициализации с помощью низкоуровневой функции disk_initialize(0), приведенной в хелпе компилятора CodeVisionAVR.
Проблема--инициализация не проходит. Значение, возвращаемое функцией инициализации, я считаю, содержит все три ошибки("Disk init failed","Card write\nprotected", "Card not present"). Не знаю, может я не прав? Т.к. все три условия проверки на ошибки менял местами в исходном коде. И, допустим, то условие, которое стоит на проверку первым, оно и выводилось на дисплей. Т.е. если мы будем сперва проверять вот так:
PHP код:
|
if (status & STA_NODISK) lcd_puts("Card not present");
|
на дисплей выйдет ошибка "Card not present".
Если первым проверять условие:
PHP код:
|
if (status & STA_NOINIT) lcd_puts("Disk init failed");
|
на дисплей выйдет ошибка "Disk init failed"
В архиве сам проект для протеуса. Там же лежит файл образа карты sd.mmc, если Proteus будет ругаться, его нужно будет указать в свойствах карты. Там же лежит прошивка для мк. И в отдельной папочке находятся файлы исходного кода .c и .prj для CodeVisionAVR.
|
Начните не с написания программы. Вам это рано. Почитайте документацию на карту.
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
28.03.2013, 00:21
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Вопросы по SD-Card in CodeVisionAVR
Сообщение от tempora
|
Человечество использует другую методу, в которой знания предыдущих поколений передаются последующим в систематизированном, сокращенном виде (да и не все знания-то), на рисунке - это перекрывающиеся части прямоугольников варианта (b):
|
Такую?
|
|
|
Сказали "Спасибо" omercury
|
|
|
28.03.2013, 06:02
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,091
Сказал спасибо: 2,566
Сказали Спасибо 11,900 раз(а) в 5,973 сообщении(ях)
|
Re: Вопросы по SD-Card in CodeVisionAVR
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
30.03.2013, 19:05
|
|
Прописка
Регистрация: 15.03.2009
Сообщений: 162
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Вопросы по SD-Card in CodeVisionAVR
Товарищи! Как записать дробное число на SD/MMC карту с помощью функции f_write? Подумывал, что сначала поместить число в переменную buffer, используя следующую процедуру:
sprintf(buffer,.....), а потом f_write. Но не знаю, стоит ли так делать. И тем более у sprintf переменная buffer-типа char, а у f_write-типа BYTE.
Попробовал таким способом, видно компилятор произвел автоматическое приведение типов, но суть соль не в этом. Открыл через WinImage образ карты. Да, там действительно появился файл- file.txt. Но только вместо цифр там-квадратики. Уж и кодировку менял в самом файле txt, ничего не помогает. Пробовал сделать так, чтобы программка создавала .doc файл. Программа также успешно создала и записала в .doc файл. Прежде чем открыть, .doc файл три раза ругается таким образом: "Не удается запустить конвертор mswrd632". И и с четвертой попытки .doc файл открывается. Но, правда, с кодировкой там норма-цифры все записались.
Последний раз редактировалось Frensis777; 30.03.2013 в 19:48.
|
|
|
|
30.03.2013, 20:18
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Вопросы по SD-Card in CodeVisionAVR
Сообщение от Frensis777
|
buffer-типа char, а у f_write-типа BYTE
|
В Си нет типа BYTE. Это происки Чана. О приведении типов слышали?
Да и с указателями подчитать надо бы...
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
30.03.2013, 20:23
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Вопросы по SD-Card in CodeVisionAVR
Сообщение от Frensis777
|
sprintf(buffer,.....), а потом f_write. Но не знаю, стоит ли так делать. И тем более у sprintf переменная buffer-типа char, а у f_write-типа BYTE.
|
Если файл д.б. текстовым, то можно и так, только нужен ли именно текстовый? И встречный вопрос - что у f_write имеет тип BYTE?
Сообщение от Frensis777
|
Прежде чем открыть, .doc файл три раза ругается таким образом: "Не удается запустить конвертор mswrd632".
|
".doc" - это не текстовые файлы.
Сообщение от Frensis777
|
Как записать дробное число на SD/MMC карту с помощью функции f_write?
|
Любой объект данных записывается с помощью функции f_write одним и тем же способом - передачей в f_write его адреса и размера.
__________________
There's always more than one way to skin a cat.
|
|
|
|
30.03.2013, 20:24
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Вопросы по SD-Card in CodeVisionAVR
Сообщение от ut1wpr
|
Это происки Чана.
|
Он-то тут при чём?
__________________
There's always more than one way to skin a cat.
|
|
|
|
30.03.2013, 20:33
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,091
Сказал спасибо: 2,566
Сказали Спасибо 11,900 раз(а) в 5,973 сообщении(ях)
|
Re: Вопросы по SD-Card in CodeVisionAVR
Frensis777, квадратики потому, что записано в бинарном виде в файл. Для нормального представления в *.txt нужно преобразование в ASCII
Сообщение от Frensis777
|
сначала поместить число в переменную buffer, используя следующую процедуру:
sprintf(buffer,.....), а потом f_write.
|
так так и надо. А как Word-у удалось извратиться и преобразовать float в ASCII - Вы, наверное, фокусник!
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
LPC2468+SD card
|
Segriv |
Микроконтроллеры, АЦП, память и т.д |
9 |
07.11.2011 12:47 |
Ассемблерная вставка в CodeVisionAVR вопросы
|
E_C_C |
Микроконтроллеры, АЦП, память и т.д |
4 |
29.06.2011 17:14 |
SD-card
|
-Dreamer- |
Микроконтроллеры, АЦП, память и т.д |
10 |
15.05.2010 20:21 |
IDE card reader
|
ILLLYA |
Микроконтроллеры, АЦП, память и т.д |
1 |
14.04.2007 16:52 |
Разъем по MultiMedia Card
|
Дима |
Микроконтроллеры, АЦП, память и т.д |
1 |
16.07.2003 18:06 |
Часовой пояс GMT +4, время: 01:41.
|
|