Εμφάνιση αποτελεσμάτων : 1 έως 8 από 8

Θέμα: html κώδικας σε Arduino - ανεπαρκής μνήμη

  1. #1
    Μέλος
    Όνομα
    Θοδωρής Λέκας
    Εγγραφή
    Oct 2010
    Περιοχή
    Αν. Θεσσαλονίκη
    Μηνύματα
    390

    Προεπιλογή html κώδικας σε Arduino - ανεπαρκής μνήμη

    Παιδιά καλησπέρα.

    Χρησιμοποιώ μια Ethernet shield στο Arduino και έχω προσθέσει μέσα στο sketch τον εξής κώδικα:

    //if HTTP request has ended
    if (c == '\n') {
    Serial.println(readString); //print to serial monitor for debuging

    client.println("HTTP/1.1 200 OK"); //send new page
    client.println("Content-Type: text/html");
    client.println();
    client.println("<HTML>");
    client.println("<HEAD>");
    client.println("<meta name='apple-mobile-web-app-capable' content='yes' />");
    client.println("<meta name='apple-mobile-web-app-status-bar-style' content='black-translucent' />");
    client.println("<link rel='stylesheet' type='text/css' href='http://randomnerdtutorials.com/ethernetcss.css' />");
    client.println("<TITLE>Web Devices Control</TITLE>");
    client.println("</HEAD>");
    client.println("<BODY>");
    client.println("<H1>Web Devices Control</H1>");
    client.println("<hr />");
    client.println("<br />");
    client.println("<H2>Arduino with Ethernet Shield</H2>");
    client.println("<br />");
    client.println("</a>");
    client.println("<a href=\"/?button1on\"\">Turn On LED</a>");
    client.println("<a href=\"/?button1off\"\">Turn Off LED</a>");
    //client.println("<br />");
    client.println("LED is now: ");


    if(value == HIGH)
    {
    client.println("ON");
    }
    else
    {
    client.println("OFF");
    }

    client.println("<br />");
    client.println("<br />");
    client.println("<br />");
    client.println("<a href=\"/?button2on\"\">Rotate Left</a>");
    client.println("<a href=\"/?button2off\"\">Rotate Right</a><br />");
    client.println("<br />");
    client.println("<br />");
    client.println("<a href=\"/?button3on\"\">Open Valve</a>");
    client.println("<a href=\"/?button3off\"\">Close Valve</a><br />");
    client.println("<br />");
    client.println("</BODY>");
    client.println("</HTML>");

    delay(1);
    //stopping client
    client.stop();


    Υπάρχει τρόπος αυτό το τμήμα κώδικα να το βάλω σε processing έτσι ώστε να μην έχω θέματα μνήμης του Arduino? ή πρέπει να γράψω έναν ανάλογο κώδικα σε processing για να καταφέρω το ίδιο αποτέλεσμα? (με τον κώδικα αυτό σε μια "εσωτερική" ip την 192.168.1.178 εμφανίζεται ένα παράθυρο με κάποια buttons για διάφορες λειτουργίες του Arduino-δηλαδή χειρίζομαι από το pc εξόδους του Arduino)

    0 Not allowed! Not allowed!

  2. #2
    Μέλος Το avatar του χρήστη picdev
    Όνομα
    akis
    Εγγραφή
    Jul 2007
    Περιοχή
    ____
    Μηνύματα
    7.375

    Προεπιλογή

    επειδή είχα πρόσφατα πρόβλημα με κάτι ανάλογο σε PIC, δήλωσα τις μεταβλητές CONST και αποθηκεύτηκαν στη rom.
    Απο εκεί και πέρα ανάλογα την αρχιτεκτονική πράτεις ανάλογα.
    Μπορείς κανονικά να διαβάσεις απο τη Rom , στους pic τουλάχιστον,

    0 Not allowed! Not allowed!

  3. #3
    Μέλος
    Όνομα
    Θοδωρής Λέκας
    Εγγραφή
    Oct 2010
    Περιοχή
    Αν. Θεσσαλονίκη
    Μηνύματα
    390

    Προεπιλογή

    Λες????? Τόση διαφορά έχουν σε θέμα μνήμης? εγώ αν το κάνω δεν αλλάζει κάτι..δηλαδή αυτό που λες οτι θα διαβάσεις απο τη Rom το κάνει μόνος του ο Arduino, δεν κάνω κάτι εγώ ε?

    Μπορώ και κάποιες int να τις κάνω byte τώρα που το λες..

    0 Not allowed! Not allowed!

  4. #4
    Μέλος Το avatar του χρήστη picdev
    Όνομα
    akis
    Εγγραφή
    Jul 2007
    Περιοχή
    ____
    Μηνύματα
    7.375

    Προεπιλογή

    δεν ξέρω απο αρντουινο, όταν λέω rom ,εννοώ τη μνήμη flash που γράφεις το πρόγραμμα,
    αν δηλώσεις const τις μεταβλητές μπαίνουν εκεί, και όταν δεις την assembly list θα τις δεις στο τέλος του προγράμματος.
    Απο το datasheet θα δεις τι εντολές χρειάζονται για να κάνεις write και read , αλλά τα κάνει όλα ο compiler, απλά ψάξε πως γίνεται στο arduino.
    http://www.arduino.cc/en/Reference/PROGMEM

    επίσης το prinltn δεν θα το χρησιμοποιείς έτσι, θα αποθηκεύεις σε πίνακα char στη flash τη φράση char_array[]={"lalalalal"}
    και θα γράφεις prinln(char_array)

    0 Not allowed! Not allowed!

  5. #5
    Μέλος
    Όνομα
    Θοδωρής Λέκας
    Εγγραφή
    Oct 2010
    Περιοχή
    Αν. Θεσσαλονίκη
    Μηνύματα
    390

    Προεπιλογή

    "assignment of read-only variable 'value1' "

    μου βγάζει λάθος για κάθε μεταβλητή που την κάνω const

    0 Not allowed! Not allowed!

  6. #6
    Μέλος
    Όνομα
    Θοδωρής Λέκας
    Εγγραφή
    Oct 2010
    Περιοχή
    Αν. Θεσσαλονίκη
    Μηνύματα
    390

    Προεπιλογή

    Χαζομάρα μου..λογικό που μου βγάζει λάθος αφού η τιμή των μεταβλητών μου αλλάζει μέσα στο πρόγραμμα.

    δηλαδή αν έχω να τυπώσω 10 φράσεις με println είναι καλύτερα να δηλώσω έναν πίνακα πχ.

    char char_array[9];
    char_array[] = {"hello", "how", "are", "you', "I", "am", "fine", "thank", "you!", "hah"};

    και μετά αν θέλω να τυπώσω "thank" θα γράψω:

    client.println(array_char[7]);

    Αυτό εννοείς Άκη? κάνω οικονομία μνήμης έτσι δηλαδή?

    0 Not allowed! Not allowed!

  7. #7
    Μέλος Το avatar του χρήστη picdev
    Όνομα
    akis
    Εγγραφή
    Jul 2007
    Περιοχή
    ____
    Μηνύματα
    7.375

    Προεπιλογή

    Σε κάθε πίνακα αποθηκεύεις ενα string. Αν δηλώσεις τη μεταβλητή const τοτε αυτή αποθηκεύεται στη φλασ και όχι στη ραμ

    0 Not allowed! Not allowed!

  8. #8
    Μέλος
    Όνομα
    Καλαρακης Μιχαλης
    Εγγραφή
    Jan 2011
    Περιοχή
    Ηρακλειο
    Μηνύματα
    2.043

    Προεπιλογή

    το shield εχει και μια sd card μπορείς να γράψεις εκει οτι θέλεις και να τα διαβάζεις

    3 Not allowed! Not allowed!

Παρόμοια Θέματα

  1. arduino driver motοr κώδικας
    By alfadex in forum Μικροελεγκτές
    Απαντήσεις: 7
    Τελευταίο Μήνυμα: 23-03-17, 23:16
  2. HTML και εισαγωγή εικονας
    By info@kalarakis.com in forum Software Η/Υ
    Απαντήσεις: 5
    Τελευταίο Μήνυμα: 03-01-17, 14:53
  3. Κώδικας και σύνδεση TFT(1.8SPI) με Arduino;
    By maki in forum Μικροελεγκτές
    Απαντήσεις: 9
    Τελευταίο Μήνυμα: 08-10-16, 15:07
  4. Ανεπαρκής (;) μνήμη.
    By osek in forum Μικροελεγκτές
    Απαντήσεις: 10
    Τελευταίο Μήνυμα: 19-08-11, 09:49
  5. Απαντήσεις: 26
    Τελευταίο Μήνυμα: 10-11-09, 15:54

Δικαιώματα - Επιλογές

  • Δημιουργία θεμάτων: Όχι
  • Υποβολή μηνυμάτων: Όχι
  • Σύναψη αρχείων: Όχι
  • Επεξεργασία μηνυμάτων: Όχι
  •  
  • BB code: σε λειτουργία
  • Smilies: σε λειτουργία
  • [IMG]: σε λειτουργία
  • [VIDEO] code is σε λειτουργία
  • HTML: εκτός λειτουργίας