Я предполагаю, что этот вопрос касается микроконтроллера PICAXE и его базового языка из-за тега [picaxe]
. В опубликованном коде есть несколько вещей, которые не будут работать в PICAXE BASIC, поэтому я предполагаю, что вы знакомы с другим диалектом или пытаетесь взять некоторый код, написанный для другого диалекта, и использовать его на PICAXE. Если это не так, пожалуйста, сообщите нам.
Чтобы этот код работал на PICAXE, вам нужно исправить несколько вещей:
- Вы не можете просто присвоить имя новой переменной; вам нужно использовать встроенные имена
b0
, b1
, b2
и т. д. (байтовые переменные) или w0
, w1
, w2
и т. д. (переменные слова), если вы не зададите для него другое имя, используя ключевое слово symbol
.
- Чтобы сгенерировать случайное число, используйте ключевое слово
random
, которое назначает случайное значение указанной вами переменной слова.
- Вы можете использовать только однострочную команду
if … then
с goto
, gosub
или exit
. В противном случае вам нужно использовать структуру if … then … endif
, но вы можете написать это в одной строке, используя :
для разделения команд.
- Наконец, чтобы указать двоичное значение, вы ставите его перед символом
%
.
Так что я думаю, что вы пытаетесь сделать это:
symbol a = w0 ; use the name 'a' for word variable w0
random a ; assign a random value of 0...65535 to a
a = a // 10 + 1 ; // is modulo i.e. remainder of a / 10, so result is in range 1 - 10
if a = 1 then : pinsB = %01110111 : endif
if a = 2 then : pinsB = %00010100 : endif
if a = 3 then : pinsB = %10110011 : endif
if a = 4 then : pinsB = %10110110 : endif
if a = 5 then : pinsB = %11010100 : endif
if a = 6 then : pinsB = %11100110 : endif
if a = 7 then : pinsB = %11100111 : endif
if a = 8 then : pinsB = %00110100 : endif
if a = 9 then : pinsB = %11110111 : endif
if a = 10 then : pinsB = %11110100 : endif
Всегда помните, что каждая переменная слова состоит из двух байтовых переменных, поэтому, если вы использовали w0
, вы также не можете одновременно использовать b0
или b1
и т. Д.