Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: DAlexV, ivan_fd  
Форум Picbasic.ru » Программирование МК » Swordfish » Разбить строку на символы?
Разбить строку на символы?
DAlexV Дата: Пт, 22.01.2010, 10:33  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Создал новую тему. Если бы случайно не бросил взгляд, наверное и не заметил бы. Если есть вопрос не описанный на форуме, не бойтесь создавать новые темы !!!!!!!! (удалить всегда проще чем написать smile )

Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
ЯНДЕКС Дата: 22.01.2010
vv Дата: Пт, 22.01.2010, 10:34  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 132
Репутация: 6   ±
Замечания:   ±
На сайте с 13.11.2009

Статус: Offline

Кто подскажет как разбить строку на символы? String to Char array? Или как средствами swordfish получить ascii код символа в строке? cool
Сообщение отредактировал vv - Чт, 21.01.2010, 22:34
DAlexV Дата: Пт, 22.01.2010, 10:34  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Quote (vv)
Или как средствами swordfish получить ascii код символа в строке?

Для этого нужно было отдельную тему создавать !!!!
Ответ на поставленный вопрос:
Code
Device=18f4550
Clock=20

Include "convert.bas"    // Конвертирование данных
Include "string.bas"
Include "USART.bas"

Dim C,B As String
Dim I,A,P As Byte
dim X as longword

C="01234567890ABCDEFGH"    // исходник для поиска
I=0                        // длинна строки

SetBaudrate(br57600)

// Первый способ

I=Length(C)                // узнаем длинну
Write ("LEN=",DecToStr(I),13)    // пишем ее в уарт
For A=0 To I-1                     // в цикле ищем нужный нам знак
If Mid(C,A,1)="H" Then           // если нашли
Write (DecToStr(A+1),13)         // вывлевываем его в уарт
End If
Next

// Второй способ
// ******************************
// любая символьная переменная  представляет из себя
// массив из символов(работаем с массивом)
// комментировать не буду, и так все ясно
I=Length(C)
A=0
cycle:
If C(A)="0" Then
Write (DecToStr(A+1),13)
End If
Inc(A)

If A<= I Then
  GoTo cycle
End If

// Вывод ASCII кодов строки
I=Length(C)                // узнаем длинну
Write ("LEN=",DecToStr(I),13,13)    // пишем ее в уарт
For A=0 To I-1                     // в цикле ищем нужный нам знак
b=Mid(C,A,1)
p=byte(b(0))

Write(dectostr(p),13)         // вывлевываем его в уарт

Next

Write (13,"The end",13)
loop:
GoTo loop


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
vv Дата: Пт, 22.01.2010, 11:01  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 132
Репутация: 6   ±
Замечания:   ±
На сайте с 13.11.2009

Статус: Offline

Прикрутил к ПИКу 2550 экран от сименса СХ65 (контроллер epson l2f50, datasheet имеется на аналогичный).
SPI программно. Столкнулся с проблемками:
-как бы увеличить производительность ПИКа, ибо заливка экрана одним цветом (16-и битный) происходит около секунды((( (176*132*16 бит)
- как бы получить код ASCII чтоб печатать на экранчике произвольно (вывести напряжение с АЦП к примеру - AdInAsVolt )
- может у меня не правильно осцилятор сконфигурирован?
Прикрепления: lcd1.bas (14.9 Kb)
DAlexV Дата: Пт, 22.01.2010, 11:21  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

С внутренним осцилятором толком не сталкивался, но когда писал статейку http://www.picbasic.ru/publ/lcd_nokia_3310_swordfish/1-1-0-24 столкнулся с той же проблемой. На 20 MHZ 452 пик еле еле тянул индикатор. А в шпротеус не загонял??? Время исполнения не мерил??? Попробуй, бывает находиться какая нибудь строка которая всю малину портит. Скинь ссылку на источник кода

Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
vv Дата: Пт, 22.01.2010, 12:06  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 132
Репутация: 6   ±
Замечания:   ±
На сайте с 13.11.2009

Статус: Offline

Добавил оригинал,портировал с него, он на Сях и под атмегу, но думаю разница то какая?
пробовал использовать аппаратный SPI , что то не получилось запустить... в шпротеусе с аппаратного какие то непонятные байты шли при инициализаци, которые не нужны дисплею. На выходных попробую добить аппаратный.
и еще, блинки светодиода происходят п разному, т.е. пик запускается то с одной частотой. то с другой. может из за того что питание понижено до 3.3В?
Прикрепления: L2F50_display4.rar (12.9 Kb)
DAlexV Дата: Пт, 22.01.2010, 12:20  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Есть в пиках регистр LPV называется(вроде) детектор пониженного напряжения. а не пробовал делитель 5->3 вольта поставить??? в статье он есть. Может запроста частота плавать из за снижения напряжения. Это целая ветка для обсуждения.
Quote (vv)
Прикрепления: L2F50_display4.rar

меня не только архив интересен, но и url откуда скачал


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
vv Дата: Пт, 22.01.2010, 12:37  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 132
Репутация: 6   ±
Замечания:   ±
На сайте с 13.11.2009

Статус: Offline

Quote (DAlexV)
меня не только архив интересен, но и url откуда скачал

ноги растут отсюда - http://www.superkranz.de/christian/S65_Display/DisplaySoftware.html

Питал схему от УСБ через ЖЕЛТЫЙ светодиод, на нем падает почти 2в - если кто повторять будет)))

DAlexV Дата: Пт, 22.01.2010, 12:54  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Quote (vv)
Питал схему от УСБ через ЖЕЛТЫЙ светодиод, на нем падает почти 2в

Ну ясно. Переведи на 5 вольт согласно схеме

Из неравномерной нагрузки могет скакать напряжение, со всеми вытекающими !!!!!
И поставь обычный кварц на 20 м. герц. и выкинь лишние настройки по частоте.
Это избавит от еще одной возможной проблемы(неправильная кварцовка)

P/s На сайте языка задавали подобный вопрос по epson. Говорят что можно переправить S1D15G00 и все будет шикарно. У самого до таких дел руки не дошли


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
Сообщение отредактировал DAlexV - Пт, 22.01.2010, 12:57
vv Дата: Пт, 22.01.2010, 23:15  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 132
Репутация: 6   ±
Замечания:   ±
На сайте с 13.11.2009

Статус: Offline

перевел пик на 5 вольт и согласовал уровни сигналов - результат не улучшился. DAlexV, посоветуй пошустрей какой нить пик, может 30-33 серии, но чтоб можно было басиком программировать.
DAlexV Дата: Пт, 22.01.2010, 23:36  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Quote (DAlexV)
поставь обычный кварц на 20 м. герц.
Поставил ???
Странно, тогда почему на меге с кварцом в 16MhZ проджект работает. Пошустрее 24 и 32 линейка есть, но там рулят С и HIHech от Микрочипа. Барсик на этих зверей не распространяется. Жаль у меня нет дисплея как у тебя, у самого на цветные руки чешутся. Завтра поеду на рынок, может прикуплю. На выходных попробую поковыряться в твоей проге. Может чего и наковыряю. Не вешать нос. wink


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
ЯНДЕКС Дата: 22.01.2010
holyuser Дата: Сб, 23.01.2010, 01:36  |                                                                                                                Сообщение # 12
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 228
Репутация: 5   ±
Замечания:   ±
На сайте с 12.12.2007

Статус: Offline

Quote (DAlexV)
Барсик на этих зверей не распространяется.

Распространяется, посмотрите здесь:
http://www.picbasic.ru/load/microbasic_dlja_dspic_v500/3-1-0-141
DAlexV Дата: Сб, 23.01.2010, 11:10  |                                                                                                                Сообщение # 13
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Quote (holyuser)
Распространяется, посмотрите здесь:

А черт, за ностями не слежу. Ну абшибся !!!! Признаю.


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
ivan_fd Дата: Вс, 24.01.2010, 14:27  |                                                                                                                Сообщение # 14
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Quote (DAlexV)
Странно, тогда почему на меге с кварцом в 16MhZ проджект работает

Потому что производительность ATMEga 16 MIPS, а ПИКА 10.

Цитата с МИКРОЧИПА:

Quote
Давно хотелось прикинуть скорости нелюбимых АВРок на флоате, да все как-то времени не хватало на эксперименты. На праздниках все-таки добрался. Постаквил AVR студию для симуляции, чтобы определить время выполнения и CodeVision для компиляции, выбрал в нем оптимизацию по скорости. Набрасал такой тестовый примерчик (MEGA16, частота 4 МГц)

Код:


Code
float x, y, z1, z2;
   
main
{
     x = 4.0;
     y = 2.0;
   
     z1 = x*y;     // 207 - циклов,   51.75 us
   
     z2 = x/y;     // 700 - циклов,  175.0 us
}

Тоже самое скомпилировал HT PICC18 для PIC452

Код:


Code
float x, y, z1, z2;
   
main
{
     x = 4.0;
     y = 2.0;
   
     z1 = x*y;     // 400 - циклов,   400 us
   
     z2 = x/y;     // 684 - циклов,  684 us
}

vv Дата: Вс, 24.01.2010, 19:43  |                                                                                                                Сообщение # 15
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 132
Репутация: 6   ±
Замечания:   ±
На сайте с 13.11.2009

Статус: Offline

Quote (ivan_fd)
Потому что производительность ATMEga 16 MIPS, а ПИКА 10.

С плавающей не используются переменные для вывода на экран... Может из-за того что пик "адаптирован" под Си? и после компиляции басиком смотришь асм - а там одни переходы)))

Форум Picbasic.ru » Программирование МК » Swordfish » Разбить строку на символы?
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: