Хранение входов в списке с помощью чипа pic (программирование picaxe)
Никогда ранее не использовал picaxe, и мне интересно, как или можно ли сохранить список входных значений в списке для выполнения при нажатии кнопки "Перейти".
Это для Программируемого электрического транспортного средства, которое я делаю, и у меня заканчивается время!
Любые строки кода, которые я могу использовать и адаптировать, будут очень полезны!
1 ответ
Прочитайте раздел "Переменные" в части 2 руководства PICAXE.
На любом чипе PICAXE вы можете использовать POKE
а также PEEK
Команды для сохранения и извлечения байта за раз из указанной ячейки памяти. Вам нужно будет проверить, какой диапазон адресов доступен для использования на конкретном чипе PICAXE, который вы используете, и вам нужно будет использовать переменную в качестве указателя, чтобы отслеживать, в какое место вы пишете или читаете, для пример:
SYMBOL write_pointer = w0
SYMBOL read_pointer = w1
SYMBOL first_address = $1C ' lowest address available
SYMBOL last_address = $1FF ' highest address available
' (addresses here are for 18M2+, 14M2, 20M2, different for other PICAXE chips)
' Example of storing data:
write_pointer = first_address
DO
' Code goes here that produces the data to be stored - e.g. in variable b4
POKE write_pointer, b4
' your code needs to determine when it's finished storing data,
' shown here by 'something'
IF something OR write_pointer = last_address THEN EXIT
INC write_pointer
LOOP
' Example of retrieving data again in the same order
FOR read_pointer = first_address TO write_pointer
PEEK read_pointer, b4
' do something with the value that was retrieved
NEXT read_pointer
В зависимости от того, какой у вас чип PICAXE, вы можете использовать память блокнота с @ptr
, @ptrinc
а также @ptrdec
или косвенная адресация переменных с @bptr
, @bptrinc
а также @bptrdec
- это сделает ваш код проще, но доступно не на всех чипах. Это все объясняется в руководстве.
Если вы новичок в PICAXE, убедитесь, что вы понимаете связь между байтовыми и словесными переменными. В приведенном выше примере я использовал переменные слова w0
а также w1
что означает, что вы не можете использовать байтовые переменные b0
в b3
в то же время.