Хранение входов в списке с помощью чипа 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 в то же время.

Другие вопросы по тегам