Как ввести и сохранить значения на моем arduino, чтобы использовать их позже?
я хочу создать список, который содержит число неопределенной ссылки, состоящее из 8 чисел :
например :
28546455
95685615
55925555
59295525
и т.д.......
эти цифры можно ввести с помощью клавиатуры
каждая ссылка содержит 2 параметра :
1.скорость
2.шаги
пример:
28546455 --> скорость : 500
--> шаги : 10000
95685615 --> скорость : 300
-->шаги : 20000
и т.д..........
я сделал эту программу, но она, кажется, не работает??
кто-нибудь поможет??
Что я уже пробовал:
<pre>#include "Reference.h" #include <Keypad.h> char keypad_referenceNumber[9]; char keypad_SPEED[4]; char keypad_STEPS[6]; int counter = 0; const byte ROWS =4; const byte COLS =3; char keys[ROWS][COLS]={ {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'} }; byte rowPins[ROWS]={8,7,6,5}; byte colPins[COLS]={4,3,2}; Keypad keypad = Keypad (makeKeymap(keys),rowPins,colPins,ROWS,COLS); int data_referenceNumber; int data_SPEED; int data_STEPS; List *myList; void setup() { // put your setup code here, to run once: Serial.begin(9600); List *myList = initialisation(); } void loop() { // put your main code here, to run repeatedly: getreferenceNumber(); getSPEED(); getSTEPS(); addNewReference(myList,data_referenceNumber,data_SPEED,data_STEPS); displayList(myList); } void getreferenceNumber(){ char key = keypad.getKey(); if (key!=NO_KEY){ keypad_referenceNumber[counter++]= key; keypad_referenceNumber[counter]= '\0'; Serial.print(key); if (key == '#'){ data_referenceNumber= atoi(keypad_referenceNumber); Serial.println(data_referenceNumber); counter = 0; } } } void getSPEED(){ char key = keypad.getKey(); if (key!=NO_KEY){ keypad_SPEED[counter++]= key; keypad_SPEED[counter]= '\0'; if (key == '#'){ data_SPEED= atoi(keypad_SPEED); Serial.println(data_SPEED); counter = 0; } } } void getSTEPS(){ char key = keypad.getKey(); if (key!=NO_KEY){ keypad_STEPS[counter++]= key; keypad_STEPS[counter]= '\0'; if (key == '#'){ data_STEPS= atoi(keypad_STEPS); Serial.println(data_STEPS); counter = 0; } } } List *initialisation(){ List *list; References *references; if (list == NULL || references == NULL){ exit (EXIT_FAILURE); } references->referenceNumber = 0; references->SPEED = 0; references->STEPS = 0; references->next = NULL; list->firstElement = references; return list; }; // x : reference number // y : speed // z : steps void addNewReference(List *list, int x, int y, int z){ References *newReference; if (list == NULL || newReference == NULL){ exit (EXIT_FAILURE); } newReference->referenceNumber = x; newReference->SPEED = y; newReference->STEPS = z; newReference->next = list->firstElement; list->firstElement = newReference; } void displayList(List *list){ if (list == NULL){ exit (EXIT_FAILURE); } References *current = list->firstElement; while(current!=NULL){ Serial.println(current->referenceNumber); Serial.println(current->SPEED); Serial.println(current->STEPS); current = current->next; } Serial.println("NULL"); }
а это и есть <reference.h>
#ifndef _REFERENCE_H_ #define _REFERENCE_H_ typedef struct References References; struct References{ int referenceNumber; int SPEED; int STEPS; References *next; }; typedef struct List List; struct List{ References *firstElement; }; #endif