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.