[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: RD3AVJ 
Форум » форумы » Общие вопросы по Bascom-AVR » как 4байта прочитать побитно и в конце добавить еденицу
как 4байта прочитать побитно и в конце добавить еденицу
trimДата: Среда, 16.04.2014, 21:05 | Сообщение # 1
Группа: Пользователи
Сообщений: 105

Статус: Offline
Привет всем есть такая тема.необходимо прочитать побитно 4байта потом добавить бит в начале строки и один убрать в конце .как бы это осуществить ?спасибо



Сообщение отредактировал trim - Среда, 16.04.2014, 21:54
 
topДата: Среда, 16.04.2014, 23:16 | Сообщение # 2
Группа: Друзья
Сообщений: 146

Статус: Offline
1) Можно воспользоваться операциями побитового сдвига Shift ну или вращения Rotate
2) Чтобы установить или снять n-ный бит в байтовой переменной var надо сделать Set var.n либо Reset var.n

Конкретно по заданию берется переменная Long (four bytes) в нее загоняются Ваши 4 байта (присваиваем  Long = 1й байт, затем делаем сдвиг Long влево на 8 бит и прибавляем к Long второй байт, опять сдвиг и.т.д.) а затем все сдвигаем на один бит вправо, тем самым на месте старшего бита появляется ноль а младший пропадает в небытие. Остается только записать старший бит какой Вам нужен.

На правду не претендую, возможно придется подкуралесить, попробовать вместо Long тип String*4. Это не единственный вариант, хорошо подумать и их много можно реализовать.
Будут вопросы, задавайте wink




Сообщение отредактировал top - Среда, 16.04.2014, 23:18
 
trimДата: Среда, 16.04.2014, 23:35 | Сообщение # 3
Группа: Пользователи
Сообщений: 105

Статус: Offline
я пробую реализовать бегущую строку на диодной матрице .пока тока изучаю .цыфры буквы написать не проблема а вот чтоб здвигалось все как нить в бок вот проблема пока .там чото мудрить надо с Data + побитный сдвиг в нужную сторону

 
trimДата: Воскресенье, 20.04.2014, 11:37 | Сообщение # 4
Группа: Пользователи
Сообщений: 105

Статус: Offline
$regfile = "m32def.dat"
$crystal = 4000000
$hwstack = 40
$swstack = 16
$framesize = 32

Dim A As Byte
Dim B As Byte
Dim C As Byte

Dim Cod As String * 5
Dim Kol As Byte
Dim Excp As Word
Dim Ex As String * 5
Dim Stroka As Long
Dim T As Integer

Dim B1 As Byte
Dim B2 As Byte
Dim B3 As Byte
Dim B4 As Byte
Dim B5 As Byte
Dim B6 As Byte
Dim B7 As Byte
Dim B8 As Byte
Dim B9 As Byte
Dim B10 As Bit
Dim B11 As Bit
Dim B12 As Bit
Dim B13 As Bit
Dim B14 As Bit
Dim B15 As Bit
Dim B16 As Bit
Dim B17 As Bit
Dim B18 As Bit
Dim B19 As Bit
Dim B20 As Bit

Config Portc = Output
Config Portd = Output
Stolb Alias Portc

Restore Dta1
Read B1
Read B2
Read B3
Read B4
Read B5
Read B6
Read B7
Read B8

Do
Incr A
If A = 9 Then
A = 0
End If
Incr B

T = 1

Select Case A
'11111111111111111
Case 1:
Stolb = &B10000000
Stroka = B1
Case 2:
Stolb = &B01000000
Stroka = B2
Case 3:
Stolb = &B00100000
Stroka = B3
Case 4:
Stolb = &B00010000
Stroka = B4

Case 5:
Stolb = &B00001000
Stroka = B5

Case 6:
Stolb = &B00000100
Stroka = B6

Case 7:
Stolb = &B00000010
Stroka = B7

Case 8:
Stolb = &B00000001
Stroka = B8
'22222222222222222
Stroka = B1
End Select
Shiftout Portd.1 , Portd.0 , Stroka , 1
Pulseout Portd , 2 , 10
Waitms T
Loop

Return
End

Dta1:

Data &B11111111 , &B11111111 , &B11110111 , &B11111011 , &B10000001 , &B11111111 , &B11111111 , &B11111111 , &B00000000




Сообщение отредактировал trim - Воскресенье, 20.04.2014, 11:43
 
trimДата: Воскресенье, 20.04.2014, 11:42 | Сообщение # 5
Группа: Пользователи
Сообщений: 105

Статус: Offline
привет .вот есть такой код он считывает одну строку data появляется один символ в светодиодной матрице но как организовать здвиг чтоб символ на матрице двигался ? и еще вопрос как читает read  остальные строчки data (если они есть) вот ковырял .ковырял .и не понЯл подскажите?

 
Форум » форумы » Общие вопросы по Bascom-AVR » как 4байта прочитать побитно и в конце добавить еденицу
Страница 1 из 11
Поиск: