Подключаем внешнюю флеш-память SD-Card к МиниБоту — различия между версиями
EdGull (обсуждение | вклад) |
EdGull (обсуждение | вклад) |
||
Строка 63: | Строка 63: | ||
- Размер сектора 512 байт (почти всех CF-карт, SD-карт и HD)<br /> | - Размер сектора 512 байт (почти всех CF-карт, SD-карт и HD)<br /> | ||
- Линейная адресация секторов (LBA-Mode). (все новые CF-карты и HD). C / H / S-Mode старых HD не поддерживается.<br /> | - Линейная адресация секторов (LBA-Mode). (все новые CF-карты и HD). C / H / S-Mode старых HD не поддерживается.<br /> | ||
+ | |||
+ | В и тоге должно получиться как минимум вот это | ||
+ | |||
+ | <source lang="vb"> | ||
+ | Dim S As string * 10 , W As Word ,L As Long | ||
+ | |||
+ | S = "write" | ||
+ | Open "write.dmo" For Output As #2 | ||
+ | Write #2 , S , W , L ' write is also supported | ||
+ | Close #2 | ||
+ | |||
+ | Open "write.dmo" For Input As #2 | ||
+ | Input #2 , S , W , L ' write is also supported | ||
+ | Close #2 | ||
+ | Print S ; " " ; W ; " " ; L | ||
+ | |||
+ | </source> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
Версия 18:41, 9 июля 2008
Писать собственно сильно нечего, всё предельно просто как валенок.
Легким движением руки паяем переходничек о шести проводках согласно схемы.
На самом МиниБоте ничего перепаивать не надо.
Эксперементальным путем установлена работоспособность SD-карт при питании 4.1В (но это не говорит о том что и ваши SD-карты такие же не прихотливые ;-)).На крайний случай на период тестов запускайте МиниБот при разряженом до 3.6В акуумуляторе.
Затем честно себе копируем код теста SD-карты. После этого разрешается править данный код на свое усмотрение... :-)))
Память так же как и сам Минибот и все остальные компоненты можно приобрести здесь http://minibot.webasyst.net/shop/
Удачи коллеги в создании искусственного интеллекта!... :-)))
Исходники Медиа:test_SD-Card.rar
Чтение из SD-Card <source lang="vb">
Sd_address = 0 ; Gosub Read_sd_data 'после чтения данные будут лежать в массиве Sd_data
</source>
запись в SD-Card <source lang="vb">
Sd_address = 0 ; Gosub Clear_sd_buffer 'Очистить буфер для чтения/записи SD карты
Sd_data(1) = 10 Sd_data(2) = 20 Sd_data(3) = 30 Sd_data(4) = 40 Sd_data(5) = 50 Sd_data(6) = 60 Sd_data(7) = 70 Sd_data(8) = 80 Sd_data(9) = 90 Sd_data(10) = 100
' и так можно до 512
Gosub Write_sd_data 'Записать данные в SD карту
</source>
От сюда http://members.aon.at/voegel/index.html будем потихоньку переводить файловую систему AVR-DOS для МиниБота
Особенности:
- Чтение и запись ASCII-файлов
- Чтение и запись бинарных файлов
- Доступны драйвера для Compact Flash Cards, Hard disk, MMC, SD
- Полностью интегрирован в BASCOM AVR BASIC
- QB/VB совместимый синтаксис
- Для быстроты и компактности полностью написан на ассемблерем
Она работает с:
- DOS-овскими FAT16 и FAT32 отформатированными разделами
- Файлы в корневой директории и субдиректории
- Короткие DOS имена файлов (8.3)
- Размер сектора 512 байт (почти всех CF-карт, SD-карт и HD)
- Линейная адресация секторов (LBA-Mode). (все новые CF-карты и HD). C / H / S-Mode старых HD не поддерживается.
В и тоге должно получиться как минимум вот это
<source lang="vb"> Dim S As string * 10 , W As Word ,L As Long
S = "write" Open "write.dmo" For Output As #2 Write #2 , S , W , L ' write is also supported Close #2
Open "write.dmo" For Input As #2 Input #2 , S , W , L ' write is also supported Close #2 Print S ; " " ; W ; " " ; L
</source>