Forum
>>
Principianti
>>
Invalid preprocessing directive #Mac
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
|
Scritto da Massimiliano Di Lizio |
2023-03-15 20:17:53 - Invalid preprocessing directive #Mac
|
|
Salve, sono alle primissime armi, volevo realizzare il progetto del potenziometro rotativo multifunzione su raspberry-pico. Ho installato le librerie della mia pico-2040 nell' Ide di Arduino, ho copiato il codice ma nella verifica mi da l'errore scritto nel titolo. Allego il codice che ho utilizzato:
import digitalio
import board
import usb_hid
import time
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.mouse import Mouse
from adafruit_hid.keycode import Keycode
from adafruit_hid.consumer_control import ConsumerControl
from adafruit_hid.consumer_control_code import ConsumerControlCode
print("== Pi Pico control ==")
CLK_PIN = board.GP4
DT_PIN = board.GP3
SW_PIN = board.GP2
clk_last = None
count = 0
totalMode = 3
currentMode = 0
cc = ConsumerControl(usb_hid.devices)
mouse = Mouse(usb_hid.devices)
keyboard = Keyboard(usb_hid.devices)
clk = digitalio.DigitalInOut(CLK_PIN)
clk.direction = digitalio.Direction.INPUT
dt = digitalio.DigitalInOut(DT_PIN)
dt.direction = digitalio.Direction.INPUT
sw = digitalio.DigitalInOut(SW_PIN)
sw.direction = digitalio.Direction.INPUT
sw.pull = digitalio.Pull.UP
def millis():
return time.monotonic() * 1000
def ccw():
print("CCW")
if (currentMode == 0): # Mac brightness down
keyboard.send(Keycode.SCROLL_LOCK)
elif(currentMode ==1): # Mac horizontal scroll right
keyboard.press(Keycode.SHIFT)
mouse.move(wheel=-1)
keyboard.release(Keycode.SHIFT)
elif(currentMode == 2): # Volume decrement
cc.send(ConsumerControlCode.VOLUME_DECREMENT)
def cw():
print("CW")
if (currentMode == 0): # Mac brightness up
keyboard.send(Keycode.PAUSE)
elif(currentMode ==1): # Mac horizontal scroll left
keyboard.press(Keycode.SHIFT)
mouse.move(wheel=1)
keyboard.release(Keycode.SHIFT)
elif(currentMode == 2): # Volume increment
cc.send(ConsumerControlCode.VOLUME_INCREMENT)
def long_press():
#Mac sleep: CMD + OPT + EJECT
keyboard.press(Keycode.ALT, Keycode.COMMAND)
cc.send(ConsumerControlCode.EJECT)
keyboard.release_all()
while(1):
clkState = clk.value
if(clk_last != clkState):
if(dt.value != clkState):
cw()
else:
ccw()
if (sw.value == 0):
pressTime = millis()
time.sleep(0.2)
longPress = False
while(sw.value == 0):
if(millis() - pressTime > 1000 and not longPress):
print("longPress")
longPress = True
long_press()
if (not longPress):
currentMode += 1
currentMode %= totalMode
print("Mode: " + str(currentMode))
clk_last = clkState
|
|
|
Scritto da Daniele aka Palmux ![]() |
2023-03-15 22:29:36 - Re: Invalid preprocessing directive #Mac
|
|
Ciao e benvenuto, purtroppo non so aiutarti, non ho nessuna esperienza sull'argomento.
Ti volevo solo far notare: A. Il codice che hai riportato è sbagliato dal punto di vista dell'indentazione, ma quello forse è solo per la formattazione su questa risorsa; B. Se c'è qualcuno che può aiutarti sarebbe magari agevolato dalla lettura di tutto l'errore; C. Ricorda che ci sono anche altre risorse nella comunità che potrebbero aiutarti. Cya |
|
|
Scritto da Mobo01 |
2023-03-22 13:33:54 - Re: Invalid preprocessing directive #Mac
|
|
Poiché la funzione millis() non è dichiarata nel codice, viene visualizzato il messaggio di errore "'millis' non è definito". Questa funzione, che viene spesso utilizzata negli schizzi di Arduino per ottenere l'ora corrente in millisecondi, non è accessibile in CircuitPython o MicroPython. (utilizzati sul Raspberry Pi Pico).
Puoi sostituire il tempo per millis().monotonic() è una funzione CircuitPython che restituisce il numero di secondi dall'ultimo reset di Pico. Per utilizzare time.monotonic() per monitorare l'ora per una pressione prolungata, è necessario modificare il codice come segue: Aggiungi il tempo di importazione all'elenco delle istruzioni di importazione nella parte superiore del codice. Sostituisci pressTime = millis() con pressTime = time.monotonic(). Sostituire if(millis() - pressTime > 1000 e non longPress): con if(time.monotonic() - pressTime > 1 e non longPress): Dopo aver apportato queste modifiche, prova a verificare nuovamente il codice e verifica se l'errore è stato risolto. |
Pagina: 1
Esegui il login per scrivere una risposta.

