Перейти к содержанию

Вывод Текста Из Файла На Экран


Рекомендуемые сообщения

Не выводит, много всего пробовал...

Вот код:

// include the SD library:
#include <SPI.h>
#include <SD.h>
#define PIN_RESET_ 9
#define PIN_SCE_ 10
#define PIN_DC_ 7
#define PIN_SDIN_ 4
#define PIN_SCLK_ 0
#define LCD_C_	 LOW
#define LCD_D_	 HIGH
#define LCD_X_	 84
#define LCD_Y_	 48
static const byte ASCII[][5] =
{
{0x00, 0x00, 0x00, 0x00, 0x00} // 20
,{0x00, 0x00, 0x5f, 0x00, 0x00} // 21 !
,{0x00, 0x07, 0x00, 0x07, 0x00} // 22 "
,{0x14, 0x7f, 0x14, 0x7f, 0x14} // 23 #
,{0x24, 0x2a, 0x7f, 0x2a, 0x12} // 24 $
,{0x23, 0x13, 0x08, 0x64, 0x62} // 25 %
,{0x36, 0x49, 0x55, 0x22, 0x50} // 26 &
,{0x00, 0x05, 0x03, 0x00, 0x00} // 27 '
,{0x00, 0x1c, 0x22, 0x41, 0x00} // 28 (
,{0x00, 0x41, 0x22, 0x1c, 0x00} // 29 )
,{0x14, 0x08, 0x3e, 0x08, 0x14} // 2a *
,{0x08, 0x08, 0x3e, 0x08, 0x08} // 2b +
,{0x00, 0x50, 0x30, 0x00, 0x00} // 2c ,
,{0x08, 0x08, 0x08, 0x08, 0x08} // 2d -
,{0x00, 0x60, 0x60, 0x00, 0x00} // 2e .
,{0x20, 0x10, 0x08, 0x04, 0x02} // 2f /
,{0x3e, 0x51, 0x49, 0x45, 0x3e} // 30 0
,{0x00, 0x42, 0x7f, 0x40, 0x00} // 31 1
,{0x42, 0x61, 0x51, 0x49, 0x46} // 32 2
,{0x21, 0x41, 0x45, 0x4b, 0x31} // 33 3
,{0x18, 0x14, 0x12, 0x7f, 0x10} // 34 4
,{0x27, 0x45, 0x45, 0x45, 0x39} // 35 5
,{0x3c, 0x4a, 0x49, 0x49, 0x30} // 36 6
,{0x01, 0x71, 0x09, 0x05, 0x03} // 37 7
,{0x36, 0x49, 0x49, 0x49, 0x36} // 38 8
,{0x06, 0x49, 0x49, 0x29, 0x1e} // 39 9
,{0x00, 0x36, 0x36, 0x00, 0x00} // 3a :
,{0x00, 0x56, 0x36, 0x00, 0x00} // 3b ;
,{0x08, 0x14, 0x22, 0x41, 0x00} // 3c <
,{0x14, 0x14, 0x14, 0x14, 0x14} // 3d =
,{0x00, 0x41, 0x22, 0x14, 0x08} // 3e >
,{0x02, 0x01, 0x51, 0x09, 0x06} // 3f ?
,{0x32, 0x49, 0x79, 0x41, 0x3e} // 40 @
,{0x7e, 0x11, 0x11, 0x11, 0x7e} // 41 A
,{0x7f, 0x49, 0x49, 0x49, 0x36} // 42 B
,{0x3e, 0x41, 0x41, 0x41, 0x22} // 43 C
,{0x7f, 0x41, 0x41, 0x22, 0x1c} // 44 D
,{0x7f, 0x49, 0x49, 0x49, 0x41} // 45 E
,{0x7f, 0x09, 0x09, 0x09, 0x01} // 46 F
,{0x3e, 0x41, 0x49, 0x49, 0x7a} // 47 G
,{0x7f, 0x08, 0x08, 0x08, 0x7f} // 48 H
,{0x00, 0x41, 0x7f, 0x41, 0x00} // 49 I
,{0x20, 0x40, 0x41, 0x3f, 0x01} // 4a J
,{0x7f, 0x08, 0x14, 0x22, 0x41} // 4b K
,{0x7f, 0x40, 0x40, 0x40, 0x40} // 4c L
,{0x7f, 0x02, 0x0c, 0x02, 0x7f} // 4d M
,{0x7f, 0x04, 0x08, 0x10, 0x7f} // 4e N
,{0x3e, 0x41, 0x41, 0x41, 0x3e} // 4f O
,{0x7f, 0x09, 0x09, 0x09, 0x06} // 50 P
,{0x3e, 0x41, 0x51, 0x21, 0x5e} // 51 Q
,{0x7f, 0x09, 0x19, 0x29, 0x46} // 52 R
,{0x46, 0x49, 0x49, 0x49, 0x31} // 53 S
,{0x01, 0x01, 0x7f, 0x01, 0x01} // 54 T
,{0x3f, 0x40, 0x40, 0x40, 0x3f} // 55 U
,{0x1f, 0x20, 0x40, 0x20, 0x1f} // 56 V
,{0x3f, 0x40, 0x38, 0x40, 0x3f} // 57 W
,{0x63, 0x14, 0x08, 0x14, 0x63} // 58 X
,{0x07, 0x08, 0x70, 0x08, 0x07} // 59 Y
,{0x61, 0x51, 0x49, 0x45, 0x43} // 5a Z
,{0x00, 0x7f, 0x41, 0x41, 0x00} // 5b [
,{0x02, 0x04, 0x08, 0x10, 0x20} // 5c ¥
,{0x00, 0x41, 0x41, 0x7f, 0x00} // 5d ]
,{0x04, 0x02, 0x01, 0x02, 0x04} // 5e ^
,{0x40, 0x40, 0x40, 0x40, 0x40} // 5f _
,{0x00, 0x01, 0x02, 0x04, 0x00} // 60 `
,{0x20, 0x54, 0x54, 0x54, 0x78} // 61 a
,{0x7f, 0x48, 0x44, 0x44, 0x38} // 62 b
,{0x38, 0x44, 0x44, 0x44, 0x20} // 63 c
,{0x38, 0x44, 0x44, 0x48, 0x7f} // 64 d
,{0x38, 0x54, 0x54, 0x54, 0x18} // 65 e
,{0x08, 0x7e, 0x09, 0x01, 0x02} // 66 f
,{0x0c, 0x52, 0x52, 0x52, 0x3e} // 67 g
,{0x7f, 0x08, 0x04, 0x04, 0x78} // 68 h
,{0x00, 0x44, 0x7d, 0x40, 0x00} // 69 i
,{0x20, 0x40, 0x44, 0x3d, 0x00} // 6a j
,{0x7f, 0x10, 0x28, 0x44, 0x00} // 6b k
,{0x00, 0x41, 0x7f, 0x40, 0x00} // 6c l
,{0x7c, 0x04, 0x18, 0x04, 0x78} // 6d m
,{0x7c, 0x08, 0x04, 0x04, 0x78} // 6e n
,{0x38, 0x44, 0x44, 0x44, 0x38} // 6f o
,{0x7c, 0x14, 0x14, 0x14, 0x08} // 70 p
,{0x08, 0x14, 0x14, 0x18, 0x7c} // 71 q
,{0x7c, 0x08, 0x04, 0x04, 0x08} // 72 r
,{0x48, 0x54, 0x54, 0x54, 0x20} // 73 s
,{0x04, 0x3f, 0x44, 0x40, 0x20} // 74 t
,{0x3c, 0x40, 0x40, 0x20, 0x7c} // 75 u
,{0x1c, 0x20, 0x40, 0x20, 0x1c} // 76 v
,{0x3c, 0x40, 0x30, 0x40, 0x3c} // 77 w
,{0x44, 0x28, 0x10, 0x28, 0x44} // 78 x
,{0x0c, 0x50, 0x50, 0x50, 0x3c} // 79 y
,{0x44, 0x64, 0x54, 0x4c, 0x44} // 7a z
,{0x00, 0x08, 0x36, 0x41, 0x00} // 7b {
,{0x00, 0x00, 0x7f, 0x00, 0x00} // 7c |
,{0x00, 0x41, 0x36, 0x08, 0x00} // 7d }
,{0x10, 0x08, 0x08, 0x10, 0x08} // 7e ←
,{0x78, 0x46, 0x41, 0x46, 0x78} // 7f →
};
void LcdCharacter(char character)
{
LcdWrite(LCD_D_, 0x00);
for (int index = 0; index < 5; index++)
{
LcdWrite(LCD_D_, ASCII[character - 0x20][index]);
}
LcdWrite(LCD_D_, 0x00);
}
void LcdClear(void)
{
for (int index = 0; index < LCD_X_ * LCD_Y_ / 8; index++)
{
LcdWrite(LCD_D_, 0x00);
}
}
void LcdInitialise(void)
{
pinMode(PIN_SCE_, OUTPUT);
pinMode(PIN_RESET_, OUTPUT);
pinMode(PIN_DC_, OUTPUT);
pinMode(PIN_SDIN_, OUTPUT);
pinMode(PIN_SCLK_, OUTPUT);
digitalWrite(PIN_RESET_, LOW);
digitalWrite(PIN_RESET_, HIGH);
LcdWrite(LCD_C_, 0x21); // LCD Extended Commands.
LcdWrite(LCD_C_, 0xB1); // Set LCD Vop (Contrast).
LcdWrite(LCD_C_, 0x04); // Set Temp coefficent. //0x04
LcdWrite(LCD_C_, 0x14); // LCD bias mode 1:48. //0x13
LcdWrite(LCD_C_, 0x20); // LCD Basic Commands
LcdWrite(LCD_C_, 0x0C); // LCD in normal mode.
}
void LcdString(char *characters)
{
while (*characters)
{
LcdCharacter(*characters++);
}
}
void LcdWrite(byte dc, byte data)
{
digitalWrite(PIN_DC_, dc);
digitalWrite(PIN_SCE_, LOW);
shiftOut(PIN_SDIN_, PIN_SCLK_, MSBFIRST, data);
digitalWrite(PIN_SCE_, HIGH);
}
void gotoXY(int x, int y)
{
LcdWrite(0, 0x80 | x); // Column.
LcdWrite(0, 0x40 | y); // Row.
}
// change this to match your SD shield or module;
// Arduino Ethernet shield: pin 4
// Adafruit SD shields and modules: pin 10
// Sparkfun SD shield: pin 8
const int chipSelect = 8;
File myFile;
void setup()
{
LcdInitialise();

while(!SD.begin(chipSelect))
{
LcdClear();
gotoXY(0,0);
LcdString("SD Card initialization failed.");
delay(100);
}

LcdClear();
gotoXY(0,0);
LcdString("OK!");

delay(500);

if (!SD.exists("1.txt"))
{
LcdClear();
gotoXY(0,0);
LcdString("1.txt doesn't exist.");
}
else
{
myFile = SD.open("1.txt");

while (myFile.available())
{
LcdClear();
gotoXY(0,0);
LcdString((char*) myFile.read());
}
}
}
void loop()
{

}

Да и хотелось бы считывать файл по строчно указывая номер строки...

Изменено пользователем Pin
Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • Попробуй еще раз сакцентировать внимание. В рамках моего вопроса, рассматривается ТОЛЬКО способ крепления разьема с ПРЯМЫМИ ногами, ВДОЛЬ платы. Другие способы не подойдут. Никак. Совсем. Их нет смысла советовать. И основной вопрос "как разместить переходные отверстия, что бы максимально крепко пролить оловом ноги разьема?". Желательно без клея. Пока из дельного насоветовали только что-то типа Оловянных Клепок, через овтерстия максимально большого проходного сечения  
    • ДБ функция логарифмическая, а на твоём спектралабе шкала дб линейная, почему??? Радиотехник ты неплохой, а вот метролог из тебя левый. Учи матчасть и не зас_рай  тему своим офтопом.
    • правильно мыслишь... скорее всего надо увеличить сопротивление R1 до 2-3 кОм.. (или R3)..
    • @r9o-11 Я про перемотку трансформатора. Не, возможно если магнитопроводов под рукой запас, провода запас, станочек есть, рука набита - тогда да, это будет быстрее и проще. Но мне кажется что в современных реалиях добыть два импульсных БП подходящей мощности всё-же легче. А человеку далёкому от электроники - гораздо легче. 
    • Нужен электронный реостат для нагрузки блоков питания. Т.е. я собираю не электронную нагрузку, а электронный реостат. Здесь нет стабилизации ни тока, ни напряжения. Слева - подается питающее напряжение, справа - подключается исследуемый блок питания. Когда движок потенциометра внизу транзистор закрыт и ток через него практически не идет. Сдвигая движок, транзистор приоткрывается и начинает пропускать ток. Тем самым создаем нагрузку для исследуемого блока питания. Но возник вопрос. Одновременно оба напряжения - питающее и исследуемое подаваться не будут. И получается, что в какой то момент времени транзистор будет работать с оборванной базой или с оборванным коллектором. Допустимо ли это? Не повредится ли он?
    • Вот это плохие новости. Я был готов к такому повороту, но у меня всегда был уверенный запуск с ППГ сердечниками, термообработанными без наложения поля (с индексом N). ППГ подходят лучше всего, особенно для мощных ключей – обеспечивают наименьшие динамические потери, с ними можно увеличивать номинал балластного резистора в цепи ПОС. Еще лучше с отжигом в продольном поле, но от однополярного динисторного пускача, такие точно будут запускаться с вероятностью ровно 50%. При желании  выкрутиться можно и с очень высокой прямоугольностью, если запускающие импульсы будут поочередно-разнополярными, в этом случае обеспечен 100% запуск независимо от того, в каком квадранте находилась остаточная индукция перед запуском.
×
×
  • Создать...