Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   654 / 1210
(#) Pali79 válasza cross51 hozzászólására (») Márc 30, 2015 /
 
Egy átlagos LCD adatlapja szerint a bekapcsolás után várni kell 15 ms-ot, aztán az a beállítási parancsok után egyenként 4,1 ms-ot, az átlagos válaszidő 100-200 ms.
Szerintem a PLL elindulása bőven belefér.
(#) lastewer válasza killbill hozzászólására (») Márc 30, 2015 /
 
Hiába hiszed nehezen , az pedig működik , kikapcsolja a B7 es lábon lévő ledet.

A javascriptben pedig : if((PORTB & 1) == 0)

Működik , köszönöm szépen
(#) killbill válasza lastewer hozzászólására (») Márc 30, 2015 /
 
Idézet:
„Hiába hiszed nehezen, az pedig működik, kikapcsolja a B7 es lábon lévő ledet.”
Ugy mukodik, hogy if(PORTB.F0 == '0')? Biztos? Nem if(PORTB.F0 == 0) van ott inkabb? Mert nem mindegy.
Idézet:
„A javascriptben pedig : if((PORTB & 1) == 0)
Működik , köszönöm szépen”
A jó úttörő ott segít, ahol tud.
(#) lastewer válasza killbill hozzászólására (») Márc 30, 2015 /
 
Szia!

Igen '0' működik , biztos. Viszont .... Az if((PORTB & 1) == 0) ami a javascriptben van , az összes PORTB lábat lekérdezi , de én csak egyet akarok lekérdezni , akkor azt hogy kell?

PORTB & 1 itt az egyes , az nem az egyes lábat jelenti.

Köszönöm.
A hozzászólás módosítva: Márc 30, 2015
(#) killbill válasza lastewer hozzászólására (») Márc 30, 2015 /
 
Eleg hihetetlen, hogy a '0' mukodik. Bar, lehet, hogy ez a PORTB.F0 ez egy struktura eleme, es akkor mukodhet igy. Bar ez sem valoszinu, mert akkor a struktura utkozne a PORTB valtozoval, ami a PIC tenyleges PORTB regisztere.

A javascript-ben a (PORTB & 1) az a PORTB valtozo legalso bitjet veszi csak figyelembe, tehat csak 1 kimenetet. De ez mar reges regen nem PIC tema, hanem programozasi alapismeretek.

A javascript-ben az if igy kellene kinezzen:
  1. for(i = 0; i < 8; ++i){
  2.   if((PORTB & (1 << i)) == 0)

Ez igy mind a nyolc kimenetet lekerdezi, kulon-kulon.
(#) eSDi válasza lastewer hozzászólására (») Márc 30, 2015 /
 
Üdv!

Nem szeretnék nagyon bele szólni, de a Javascript nem tudja közvetlenül elérni a PIC portjait, mert az csak a böngészőben fut. Ajax-al kellene a változót (ami a port állapotát hordozza) átvenni a webszervertől. Ez már nem biztos, hogy belefér szegény PIC-be. Szóval vagy nagyobb PIC-kell, vagy statikus oldalakat használsz, vagy külső memórián tárolod a weboldalak tartalmát (pl SD kártya).
(#) don_peter válasza eSDi hozzászólására (») Márc 30, 2015 /
 
Ha jól vettem ki a programból, akkor minden frissítésnél kérdezi le az információkat.
Ha jól láttam van egy frissítési gomb is, tehát itt az ajax csak akkor kell, ha automatikus időközönként akarja lekérdezni a szerveroldalt.
Ha nem, akkor jó a kliensoldali JavaScript.
Persze ez a része már nem PIC téma..

Amúgy érdekes kérdés foglakoztat:
Lehetséges lenne egy sima memória mondjuk 25LC SPI-s memóriába letárolni a weboldal html szerkezetét?
A hozzászólás módosítva: Márc 30, 2015
(#) lastewer válasza don_peter hozzászólására (») Márc 30, 2015 /
 
Igen , frissítéskor kérdezi le.
(#) lastewer válasza killbill hozzászólására (») Márc 30, 2015 /
 
Értelek , tehát akkor nincs mód arra , hogy csak egyet kérdezzek le. Köszi.

Ezt akkor javascriptben kell lekezelni , hogy 1-et jelenítsen meg. Bár ez elég gáz szerintem .
A hozzászólás módosítva: Márc 30, 2015
(#) eSDi válasza don_peter hozzászólására (») Márc 30, 2015 /
 
Nem csak az autó frissítéshez jó az ajax. Ha a frissítés gombot kell nyomogatni, akkor meg teljesen felesleges a javascript. Amúgy attól még ugyan úgy fel kell valami JS változót tölteni a port állapotával, mert a JS-nek lila gőze sincs arról, hogy mi az a PORTB. Egyszerűbb lenne, ha programból lenne kiküldve a megfelelően formázott szöveg a feltételeknek megfelelően, így nem lenne szükség JS-re.
(#) don_peter válasza eSDi hozzászólására (») Márc 30, 2015 /
 
Teljesen igazad van és egyet is értek...
A JavaScript mondjuk annyit könnyít, hogy tudsz változókat kezelni amit egy egyszerű html oldal esetén nem.
Így a kódok rövidebbek lehetnek, ha ez nem lenne akkor lehet nem férne bele a PIC memóriájába a cucc.
(#) eSDi válasza don_peter hozzászólására (») Márc 30, 2015 / 1
 
Igen, de saját meglátásom szerint egyenlőre egy sima LED ki/be felirat és egy szín megváltoztatása statikus módban nem sokkal dobná meg a méretet (talán még kisebb is lenne).

- Kiírjuk a html tartalmát addig a sorig ahol változtatni kell.
- Eldöntjük programból, hogy LED ki, vagy LED be és kiíírjuk a megfelelőt.
- Kiírjuk a maradék html tartalmat.

Ennyi az egész.

Ha ez mind megy, akkor jöhetne a JavaScript...
A hozzászólás módosítva: Márc 30, 2015
(#) killbill válasza lastewer hozzászólására (») Márc 30, 2015 /
 
Szerintem nem ertesz. Vagy en nem ertelek teged.
Ha azt akarod, hogy ne nyolc gomb legyen a webes feluleten, akkor a for() ciklust ki kell venni a javascriptbol. Vegulis a javascript generalja a html tartalmat, amit a bongeszo megjelenit.
A hozzászólás módosítva: Márc 30, 2015
(#) lastewer válasza killbill hozzászólására (») Márc 30, 2015 /
 
Igen , ezzel tökéletesen tisztában vagyok . Kivettem belőle , de az eredmény az volt , hogy egyszer mutatta rendesen , utánna nem. Tehát ugráltak az értékek a változóban. De mindjárt mutatok egy forrást is úgy mindenkinek könnyebb lesz .
(#) lastewer válasza killbill hozzászólására (») Márc 30, 2015 /
 
Csináltam egy videót is , hogy jobban lehessen érteni mi a gond : Letöltés

Tehát "ugrálnak a számok" , ezért egyszer jó , egyszer nem.

Itt pedig a forrás , ami be van égetve :

  1. // duplex config flags
  2. #define Spi_Ethernet_HALFDUPLEX     0x00  // half duplex
  3. #define Spi_Ethernet_FULLDUPLEX     0x01  // full duplex
  4.  
  5. // mE ehternet NIC pinout
  6. sfr sbit SPI_Ethernet_Rst at RC0_bit;
  7. sfr sbit SPI_Ethernet_CS  at RC1_bit;
  8. sfr sbit SPI_Ethernet_Rst_Direction at TRISC0_bit;
  9. sfr sbit SPI_Ethernet_CS_Direction  at TRISC1_bit;
  10. // end ethernet NIC definitions
  11.  
  12. typedef struct
  13. {
  14.   unsigned canCloseTCP: 1;  // flag which closes TCP socket (not relevant to UDP)
  15.   unsigned isBroadcast: 1;  // flag which denotes that the IP package has been received via subnet broadcast address (not used for PIC16 family)
  16. } TEthPktFlags;
  17.  
  18. /************************************************************
  19.  * ROM constant strings
  20.  */
  21. const unsigned char httpHeader[] = "HTTP/1.1 200 OK\nContent-type: " ;  // HTTP header
  22. const unsigned char httpMimeTypeHTML[] = "text/html\n\n" ;              // HTML MIME type
  23. const unsigned char httpMimeTypeScript[] = "text/plain\n\n" ;           // TEXT MIME type
  24. unsigned char httpMethod[] = "GET /";
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32. /*
  33.  * web page, splited into 2 parts :
  34.  * when coming short of ROM, fragmented data is handled more efficiently by linker
  35.  *
  36.  * this HTML page calls the boards to get its status, and builds itself with javascript
  37.  */
  38.  //*************************************************************************
  39.  // Change the IP address of the page to be refreshed
  40.  
  41. const char *indexPageHEAD = "<meta http-equiv='refresh' content='10;url=http://192.168.0.170/'>\
  42. <HTML><HEAD></HEAD><BODY>\
  43. <h1>Teszt mikrovezérlo<p>avec MikroC PRO v5.6.1</h1>\
  44. <p><a href=\"http://192.168.0.170/b\">Led be</a> - <a href=\"http://192.168.0.170/k\">Led ki</a><p>\
  45. <p><a href=/>Frissít</a><p>\
  46. <script src=/s></script>";
  47.  
  48. const char *indexPageBODY =  "<form name='input' method='get'><input type='text' name='parancs' /> <br/><input type='submit' name='be' value='Mehet'/></form>";
  49.  
  50. const char *indexPageBODY2 =  "</table></td><td>\
  51. <table border=1 style='font-size:20px; font-family: terminal;'>\
  52. <tr><th colspan=3>KimenetPORTB : <script>document.write(PORTB );</script></th></tr>\
  53. <script>\
  54. var str,i;\
  55. str='';\
  56. \
  57. str+='<tr><td bgcolor=#cccccc>LED B1 es</td>';\
  58. if(PORTB&(1<<1))\
  59. {\
  60. str+='<td bgcolor=green>Bekapcsolva';\
  61. }\
  62. else\
  63. {\
  64. str+='<td bgcolor=#999999>Kikapcsolva';\
  65. }\
  66. str+='</td></tr>';\
  67. document.write(str);\
  68. </script>\
  69. </table></td></tr></table>\
  70. <p>This is HTTP request #<script>document.write(REQ)</script><p>\
  71. </BODY></HTML>";
  72.  
  73. //*************************************************************************
  74.  
  75.  
  76. /***********************************
  77.  * RAM variables
  78.  */
  79. unsigned char   myMacAddr[6] = {0x00, 0x14, 0xA5, 0x76, 0x19, 0x3f};   // my MAC address
  80. unsigned char   myIpAddr[4]  = {192, 168, 0, 170};                     // my IP address
  81. unsigned char   getRequest[15];                                        // HTTP request buffer
  82. unsigned char   get_Request, digit_getRequest, etat_interrupteur;
  83. unsigned char   dyna[30];                                              // buffer for dynamic response
  84. unsigned long   httpCounter = 0;                                       // counter of HTTP requests
  85.  
  86.  
  87. #define putConstString  SPI_Ethernet_putConstString
  88. #define putString  SPI_Ethernet_putString
  89.  
  90. unsigned int  SPI_Ethernet_UserTCP(unsigned char *remoteHost, unsigned int remotePort,
  91.                                unsigned int localPort, unsigned int reqLength, TEthPktFlags *flags)
  92. {
  93.   unsigned int    len = 0 ;                   // my reply length
  94.   unsigned int    i ;                         // general purpose integer
  95.  
  96.   // should we close tcp socket after response is sent?
  97.   // library closes tcp socket by default if canClose flag is not reset here
  98.   // flags->canClose = 0; // 0 - do not close socket
  99.                           // otherwise - close socket
  100.  
  101.   if(localPort != 80)
  102.   {                        // I listen only to web request on port 80
  103.     return(0) ;
  104.   }
  105.  
  106.   // get 10 first bytes only of the request, the rest does not matter here
  107.   for(i = 0 ; i < 10 ; i++)
  108.   {
  109.     getRequest[i] = SPI_Ethernet_getByte() ;
  110.   }
  111.  
  112.   getRequest[i] = 0 ;
  113.  
  114.   if(memcmp(getRequest, httpMethod, 5))
  115.   {      // only GET method is supported here
  116.     return(0) ;
  117.   }
  118.  
  119.   httpCounter++ ;   // one more request done
  120.  
  121.   get_Request = getRequest[5];  // s , d
  122.  
  123.   if(get_Request == 'b')
  124.   {
  125.     len = putConstString(httpHeader);     // HTTP header
  126.     len += putConstString(httpMimeTypeHTML); // with text MIME type
  127.     PORTB.F0 = 1;
  128.     PORTB.F7 = 0;
  129.     len += putConstString(indexPageHEAD);    // HTML page first part
  130.     len += putConstString(indexPageBODY);    // HTML page second part
  131.     len += putConstString(indexPageBODY2);   // HTML page second part
  132.  
  133.   }
  134.  
  135.   if(get_Request == 'k')
  136.   {
  137.     len = putConstString(httpHeader);     // HTTP header
  138.     len += putConstString(httpMimeTypeHTML); // with text MIME type
  139.     PORTB.F0 = 0;
  140.     PORTB.F7 = 1;
  141.     len += putConstString(indexPageHEAD);    // HTML page first part
  142.     len += putConstString(indexPageBODY);    // HTML page second part
  143.     len += putConstString(indexPageBODY2);   // HTML page second part
  144.  
  145.   }
  146.        
  147.   if(get_Request == 's')  // utiliser pour <script src=/s></script>
  148.   {
  149.     // if request path name starts with s, store dynamic data in transmit buffer
  150.     // the text string replied by this request can be interpreted as javascript statements
  151.     // by browsers
  152.     len = putConstString(httpHeader);     // HTTP header
  153.     len += putConstString(httpMimeTypeScript); // with text MIME type
  154.  
  155.     // add AN2 value to reply
  156.     IntToStr(ADC_Read(2), dyna);
  157.     len += putConstString("var AN2=");
  158.     len += putString(dyna);
  159.     len += putConstString(";");
  160.  
  161.     // add AN3 value to reply
  162.     IntToStr(ADC_Read(3), dyna);
  163.     len += putConstString("var AN3=");
  164.     len += putString(dyna);
  165.     len += putConstString(";");
  166.  
  167.     // add PORTB value (buttons) to reply
  168.     IntToStr(PORTB, dyna);
  169.     len += putConstString("var PORTB=");
  170.     len += putString(dyna);
  171.     len += putConstString(";");
  172.  
  173.     // add PORTD value (LEDs) to reply
  174.     len += putConstString("var PORTD=");
  175.     IntToStr(PORTD, dyna);
  176.     len += putString(dyna);
  177.     len += putConstString(";");
  178.    
  179.     // add HTTP requests counter to reply
  180.     IntToStr(httpCounter, dyna);
  181.     len += putConstString("var REQ=");
  182.     len += putString(dyna);
  183.     len += putConstString(";");
  184.   }
  185.  
  186.  
  187.   if(len == 0)
  188.   {  
  189.  
  190.           // what do to by default
  191.     len =  putConstString(httpHeader);       // HTTP header
  192.     len += putConstString(httpMimeTypeHTML); // with HTML MIME type
  193.     len += putConstString(indexPageHEAD);    // HTML page first part
  194.     len += putConstString(indexPageBODY);    // HTML page second part
  195.     len += putConstString(indexPageBODY2);   // HTML page second part
  196.   }
  197.  
  198.   return(len) ;                               // return to the library with the number of bytes to transmit
  199. }
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207. unsigned int  SPI_Ethernet_UserUDP(unsigned char *remoteHost, unsigned int remotePort,
  208.                                    unsigned int destPort, unsigned int reqLength, TEthPktFlags *flags)
  209. {
  210.    return 0;              // back to the library with the length of the UDP reply
  211. }
  212.  
  213. /*
  214.  * main entry
  215.  */
  216. void main()
  217. {
  218.  
  219.   PORTA = 0 ;
  220.   TRISA = 0xff ;          // set PORTA as input for ADC
  221.  
  222.   PORTB = 0 ;
  223.   //TRISB = 0xff ;          // set PORTB as input for buttons
  224.  
  225.   PORTD = 0 ;
  226.   TRISD = 0 ;             // set PORTD as output
  227.  
  228.   TRISB0_bit = 0;         // B port láb kimenetre állítva
  229.   TRISB7_bit = 0;         // B port láb kimenetre állítva
  230.  
  231.  
  232.   /*
  233.    * starts ENC28J60 with :
  234.    * reset bit on RC0
  235.    * CS bit on RC1
  236.    * my MAC & IP address
  237.    * full duplex
  238.    */
  239.   SPI1_Init();
  240.   SPI_Ethernet_Init(myMacAddr, myIpAddr, Spi_Ethernet_FULLDUPLEX) ;
  241.  
  242.   while(1)
  243.   {                            // do forever
  244.     SPI_Ethernet_doPacket() ;   // process incoming Ethernet packets
  245.   }
  246. }
A hozzászólás módosítva: Márc 30, 2015
(#) eSDi válasza lastewer hozzászólására (») Márc 30, 2015 /
 
A HTML kódot te írtad? Csak azért kérdezem mert az is egy nagy katyvasz, csoda, hogy működik.
(#) lastewer válasza eSDi hozzászólására (») Márc 30, 2015 /
 
Csak beszúrtam egy form-ot , meg 2 linket hogy lássam mi a helyzet , amúgy az eredeti .Nem akarok vele foglalkozni , addig még nem tudom normálisan lekérdezni egy láb állapotát.
A hozzászólás módosítva: Márc 30, 2015
(#) Taki33 válasza lastewer hozzászólására (») Márc 30, 2015 /
 
Az a baj hogy halványlila fi...od sincs az egészhez! Az alapok nélkül nem is fogod megérteni, hogy működik! Próbáld ki így:

  1. // duplex config flags
  2. #define Spi_Ethernet_HALFDUPLEX     0x00  // half duplex
  3. #define Spi_Ethernet_FULLDUPLEX     0x01  // full duplex
  4.  
  5. // mE ehternet NIC pinout
  6. sfr sbit SPI_Ethernet_Rst at RC0_bit;
  7. sfr sbit SPI_Ethernet_CS  at RC1_bit;
  8. sfr sbit SPI_Ethernet_Rst_Direction at TRISC0_bit;
  9. sfr sbit SPI_Ethernet_CS_Direction  at TRISC1_bit;
  10. // end ethernet NIC definitions
  11.  
  12. typedef struct
  13. {
  14.   unsigned canCloseTCP: 1;  // flag which closes TCP socket (not relevant to UDP)
  15.   unsigned isBroadcast: 1;  // flag which denotes that the IP package has been received via subnet broadcast address (not used for PIC16 family)
  16. } TEthPktFlags;
  17.  
  18. /************************************************************
  19. * ROM constant strings
  20. */
  21. const unsigned char httpHeader[] = "HTTP/1.1 200 OK\nContent-type: " ;  // HTTP header
  22. const unsigned char httpMimeTypeHTML[] = "text/html\n\n" ;              // HTML MIME type
  23. const unsigned char httpMimeTypeScript[] = "text/plain\n\n" ;           // TEXT MIME type
  24. unsigned char httpMethod[] = "GET /";
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32. /*
  33. * web page, splited into 2 parts :
  34. * when coming short of ROM, fragmented data is handled more efficiently by linker
  35. *
  36. * this HTML page calls the boards to get its status, and builds itself with javascript
  37. */
  38.  //*************************************************************************
  39.  // Change the IP address of the page to be refreshed
  40.  
  41. const char *indexPageHEAD = "<meta http-equiv='refresh' content='10;url=http://192.168.0.170/'>\
  42. <HTML><HEAD></HEAD><BODY>\
  43. <h1>Teszt mikrovezérlo<p>avec MikroC PRO v5.6.1</h1>\
  44. <p><a href=\"http://192.168.0.170/b\">Led be</a> - <a href=\"http://192.168.0.170/k\">Led ki</a><p>\
  45. <p><a href=/>Frissít</a><p>\
  46. <script src=/s></script>";
  47.  
  48. const char *indexPageBODY =  "<form name='input' method='get'><input type='text' name='parancs' /> <br/><input type='submit' name='be' value='Mehet'/></form>";
  49.  
  50. const char *indexPageBODY2 =  "</table></td><td>\
  51. <table border=1 style='font-size:20px; font-family: terminal;'>\
  52. <tr><th colspan=3>KimenetPORTB : <script>document.write(PORTB );</script></th></tr>\
  53. <script>\
  54. var str,i;\
  55. str='';\
  56. \
  57. str+='<tr><td bgcolor=#cccccc>LED B1 es</td>';\
  58. if((PORTB & 1) == 1)\           //Ha a PORTB.F0 = 1-el akkor Bekapcsolva ha nem akkor kikapcsolva -->          
  59. {\
  60. str+='<td bgcolor=green>Bekapcsolva';\
  61. }\
  62. else\
  63. {\
  64. str+='<td bgcolor=#999999>Kikapcsolva';\
  65. }\
  66. str+='</td></tr>';\
  67. document.write(str);\
  68. </script>\
  69. </table></td></tr></table>\
  70. <p>This is HTTP request #<script>document.write(REQ)</script><p>\
  71. </BODY></HTML>";
  72.  
  73. //*************************************************************************
  74.  
  75.  
  76. /***********************************
  77. * RAM variables
  78. */
  79. unsigned char   myMacAddr[6] = {0x00, 0x14, 0xA5, 0x76, 0x19, 0x3f};   // my MAC address
  80. unsigned char   myIpAddr[4]  = {192, 168, 0, 170};                     // my IP address
  81. unsigned char   getRequest[15];                                        // HTTP request buffer
  82. unsigned char   get_Request, digit_getRequest, etat_interrupteur;
  83. unsigned char   dyna[30];                                              // buffer for dynamic response
  84. unsigned long   httpCounter = 0;                                       // counter of HTTP requests
  85.  
  86.  
  87. #define putConstString  SPI_Ethernet_putConstString
  88. #define putString  SPI_Ethernet_putString
  89.  
  90. unsigned int  SPI_Ethernet_UserTCP(unsigned char *remoteHost, unsigned int remotePort,
  91.                                unsigned int localPort, unsigned int reqLength, TEthPktFlags *flags)
  92. {
  93.   unsigned int    len = 0 ;                   // my reply length
  94.   unsigned int    i ;                         // general purpose integer
  95.  
  96.   // should we close tcp socket after response is sent?
  97.   // library closes tcp socket by default if canClose flag is not reset here
  98.   // flags->canClose = 0; // 0 - do not close socket
  99.                           // otherwise - close socket
  100.  
  101.   if(localPort != 80)
  102.   {                        // I listen only to web request on port 80
  103.     return(0) ;
  104.   }
  105.  
  106.   // get 10 first bytes only of the request, the rest does not matter here
  107.   for(i = 0 ; i < 10 ; i++)
  108.   {
  109.     getRequest[i] = SPI_Ethernet_getByte() ;
  110.   }
  111.  
  112.   getRequest[i] = 0 ;
  113.  
  114.   if(memcmp(getRequest, httpMethod, 5))
  115.   {      // only GET method is supported here
  116.     return(0) ;
  117.   }
  118.  
  119.   httpCounter++ ;   // one more request done
  120.  
  121.   get_Request = getRequest[5];  // s , d
  122.  
  123.   if(get_Request == 'b')
  124.   {
  125.     len = putConstString(httpHeader);     // HTTP header
  126.     len += putConstString(httpMimeTypeHTML); // with text MIME type
  127.     PORTB.F0 = 1;
  128.     PORTB.F7 = 0;
  129.     len += putConstString(indexPageHEAD);    // HTML page first part
  130.     len += putConstString(indexPageBODY);    // HTML page second part
  131.     len += putConstString(indexPageBODY2);   // HTML page second part
  132.  
  133.   }
  134.  
  135.   if(get_Request == 'k')
  136.   {
  137.     len = putConstString(httpHeader);     // HTTP header
  138.     len += putConstString(httpMimeTypeHTML); // with text MIME type
  139.     PORTB.F0 = 0;
  140.     PORTB.F7 = 1;
  141.     len += putConstString(indexPageHEAD);    // HTML page first part
  142.     len += putConstString(indexPageBODY);    // HTML page second part
  143.     len += putConstString(indexPageBODY2);   // HTML page second part
  144.  
  145.   }
  146.        
  147.   if(get_Request == 's')  // utiliser pour <script src=/s></script>
  148.   {
  149.     // if request path name starts with s, store dynamic data in transmit buffer
  150.     // the text string replied by this request can be interpreted as javascript statements
  151.     // by browsers
  152.     len = putConstString(httpHeader);     // HTTP header
  153.     len += putConstString(httpMimeTypeScript); // with text MIME type
  154.  
  155.     // add AN2 value to reply
  156.     IntToStr(ADC_Read(2), dyna);
  157.     len += putConstString("var AN2=");
  158.     len += putString(dyna);
  159.     len += putConstString(";");
  160.  
  161.     // add AN3 value to reply
  162.     IntToStr(ADC_Read(3), dyna);
  163.     len += putConstString("var AN3=");
  164.     len += putString(dyna);
  165.     len += putConstString(";");
  166.  
  167.     // add PORTB value (buttons) to reply
  168.     IntToStr(PORTB, dyna);
  169.     len += putConstString("var PORTB=");
  170.     len += putString(dyna);
  171.     len += putConstString(";");
  172.  
  173.     // add PORTD value (LEDs) to reply
  174.     len += putConstString("var PORTD=");
  175.     IntToStr(PORTD, dyna);
  176.     len += putString(dyna);
  177.     len += putConstString(";");
  178.    
  179.     // add HTTP requests counter to reply
  180.     IntToStr(httpCounter, dyna);
  181.     len += putConstString("var REQ=");
  182.     len += putString(dyna);
  183.     len += putConstString(";");
  184.   }
  185.  
  186.  
  187.   if(len == 0)
  188.   {  
  189.  
  190.           // what do to by default
  191.     len =  putConstString(httpHeader);       // HTTP header
  192.     len += putConstString(httpMimeTypeHTML); // with HTML MIME type
  193.     len += putConstString(indexPageHEAD);    // HTML page first part
  194.     len += putConstString(indexPageBODY);    // HTML page second part
  195.     len += putConstString(indexPageBODY2);   // HTML page second part
  196.   }
  197.  
  198.   return(len) ;                               // return to the library with the number of bytes to transmit
  199. }
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207. unsigned int  SPI_Ethernet_UserUDP(unsigned char *remoteHost, unsigned int remotePort,
  208.                                    unsigned int destPort, unsigned int reqLength, TEthPktFlags *flags)
  209. {
  210.    return 0;              // back to the library with the length of the UDP reply
  211. }
  212.  
  213. /*
  214. * main entry
  215. */
  216. void main()
  217. {
  218.  
  219.   PORTA = 0 ;
  220.   TRISA = 0xff ;          // set PORTA as input for ADC
  221.  
  222.   PORTB = 0 ;
  223.   TRISB = 0x00 ;          // Az összes PORTB kimenet, ha csak a két portot állítod kimenetnek akkor a többi port lebegni fog, ha nincsenek ellenállással felhúzva
  224.  
  225.   PORTD = 0 ;
  226.   TRISD = 0 ;             // set PORTD as output
  227.  
  228.  
  229.  
  230.   /*
  231.    * starts ENC28J60 with :
  232.    * reset bit on RC0
  233.    * CS bit on RC1
  234.    * my MAC & IP address
  235.    * full duplex
  236.    */
  237.   SPI1_Init();
  238.   SPI_Ethernet_Init(myMacAddr, myIpAddr, Spi_Ethernet_FULLDUPLEX) ;
  239.  
  240.   while(1)
  241.   {                            // do forever
  242.     SPI_Ethernet_doPacket() ;   // process incoming Ethernet packets
  243.   }
  244. }
A hozzászólás módosítva: Márc 30, 2015
(#) eSDi válasza lastewer hozzászólására (») Márc 30, 2015 /
 
Értem. Akkor sem jó így. A mellékletben találod a javított html-t. Mint, ahogy már írtam, először elég lenne a két gomb és egy érték kijelzés teljesen statikus HTML módban, teljesen felesleges mindenféle szkript a teszt fázisban, mert csak a saját munkádat nehezíted meg. A PIC-nek kellene megnéznie a LED állapotát és kiírni az ennek megfelelő sort (akár egy egyszerű egyes, vagy nulla formájában), nem pedig a JS-nek, így kíszűrheted HTML programozában lévő esetleges hibákat. És ha így már működik, akkor lehet bonyolítani a dolgot tovább.

pic.txt
    
(#) killbill válasza lastewer hozzászólására (») Márc 30, 2015 /
 
A javascript-ben a (PORTB & (1 << 1)) nem a legalso bitet vizsgalja, hanem a kovetkezot. Van valami abban, amit Taki33 montd a halvanylilakkal kapcsolatban...
(#) lastewer válasza Taki33 hozzászólására (») Márc 30, 2015 /
 
Jó a feltétel , köszönöm.
(#) lastewer válasza killbill hozzászólására (») Márc 30, 2015 /
 
Persze , most kezdtem csak Pic-et programozni és egyáltalán nem értek hozzá nem tagadom.
(#) lastewer válasza eSDi hozzászólására (») Márc 30, 2015 /
 
Igen úgy lenne jó kezdetben persze , csak én azt hittem , hogy mindenképpen kell js ahhoz , hogy kiírja a böngészőbe a pic változót.

Köszi a kódot , de azzal nincs problémám mint mondtam
(#) don_peter válasza lastewer hozzászólására (») Márc 30, 2015 /
 
Meg lehet oldani, említették is, hogy úgy kell a főprogramban megírni a feltételeket, hogy a végén a teljes HTML kód tartalmazza a változók eredményét.

A többivel nem kell törődnöd, azért vagy itt mert nem érthez hozzá
Mi meg azért vagyunk itt, hogy segítsünk..


De én is azt javaslom mint eSDi, próbálj meg egyszerre egy valamit kiíratni aztán mehetne a rugalmas JavaScript-es téma is..
(#) lastewer válasza don_peter hozzászólására (») Márc 30, 2015 /
 
Rendben , köszönöm , ráálltam az üres html re
(#) killbill válasza lastewer hozzászólására (») Márc 30, 2015 /
 
Idézet:
„Persze , most kezdtem csak Pic-et programozni és egyáltalán nem értek hozzá nem tagadom.”
Barmifele programozashoz ertesz? Mert igy nagyon nehez lesz megtanulni. Figyelmetlen vagy es kapkodsz. Ez sok jora nem vezet. Amig nem tudod, hogy mit jeletn az (1 << i), addig kar leirni! Javaslom, hogy fogj egy C konyvet, es kezdd el az elejerol.
(#) lastewer válasza killbill hozzászólására (») Márc 30, 2015 /
 
html,php,mysql,css, ezekhez.
(#) killbill válasza don_peter hozzászólására (») Márc 30, 2015 /
 
Idézet:
„Mi meg azért vagyunk itt, hogy segítsünk..”
(#) don_peter válasza killbill hozzászólására (») Márc 30, 2015 /
 
Vagy is próbáljunk segíteni... , de értem mire célzol...
(#) cross51 válasza icserny hozzászólására (») Márc 30, 2015 /
 
Kerestem amit írtál, hogy mi a maximális kvarc de de csak az ECH-át találtam de PIC16F1718-ról van szó.

Szerk: Megtaláltam mégis csak másképp volt leírva itt is 20MHz. Akkor marad 8MHz PLL, amit használnék annak is a CL-je = 20pF arra szűrőkondiként 27p ?
A hozzászólás módosítva: Márc 30, 2015
Következő: »»   654 / 1210
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem