Fórum témák

» Több friss téma
Fórum » Folyamatábrás mikrokontroller programozás Flowcode-dal
Lapozás: OK   90 / 360
(#) watt válasza ha8lls hozzászólására (») Nov 21, 2012 /
 
Ezt mi nem fogjuk tudni megoldani, majd ha kijön a következő javítás, abban talán...
(#) pjg hozzászólása Nov 22, 2012 /
 
Mit gondoltok ez a flow jó lehet DS18B20-hoz?
Azt írja 8MHz belső osszcival megy. És 20MHz külsővel?
A hozzászólás módosítva: Nov 22, 2012
(#) pjg válasza (Felhasználó 15355) hozzászólására (») Nov 22, 2012 /
 
Meglátjuk. Most megyek a DS-ért.
(#) watt válasza pjg hozzászólására (») Nov 22, 2012 /
 
Én is berendeltem pár dolgot, remélem holnapra itt lesz. Azt olvastam, hogy az 1wire blokk jó a 18B20-hoz is, de azért kíváncsi leszek...
(#) Kovabe hozzászólása Nov 22, 2012 /
 
Sziasztok egy keresztkérdésem lenne, ha szeretnék két pic-et összekötni kb 20-30m távolságban akkor milyen kommunikációt ajánlotok? Esetleg rs485, akkor azt hogy kell programozni illetve milyen külsö eszköz kell hozzá?
(#) pjg válasza (Felhasználó 15355) hozzászólására (») Nov 22, 2012 /
 
A flow kezel valamit a háttérben.
A hozzászólás módosítva: Nov 22, 2012

Flowcode1.c
    
(#) watt válasza (Felhasználó 15355) hozzászólására (») Nov 22, 2012 /
 
Szia! C-ben használok CRC16-ot, amit a MODBUS használ, ha érdekel abban tudok segíteni.
(#) vilmosd válasza Kovabe hozzászólására (») Nov 22, 2012 /
 
Mar valamelyik nap leirtam milyen kommunikacio szukseges. A "RS485" beirva a keresobe kb 16 millio talalatot hoz. Most ide azert nem fogom mindet bemasolni. Maga a kommunikacio sima USART alkalmazasaval oldhato meg, a RS485 fizikai reteg. AN-960.
(#) baloghzoli1 hozzászólása Nov 22, 2012 /
 
Sziasztok
Az MCP3551 ad átalakitót szeretném összekötni pic-kel ezt hogy lehet a flowcodban le programozni?
(#) Kovabe válasza vilmosd hozzászólására (») Nov 22, 2012 /
 
Ok értem de miként tudom cimezni az eszközöket hogy épp kinek mit küldök vagy mit fogadok és honnét?
(#) vilmosd válasza baloghzoli1 hozzászólására (») Nov 22, 2012 /
 
SPI csatlakozo felulete van. Olvasaskor meg kell nezni, hogy a SDO alacsony, majd ha alacsony ki kell olvasni 3 byte adatot. Van C rutinom hozza ha erdekel (mukodo, kiprobalt). Flowcodera nem tudom hogy lehet rahuzni. Az adatlapja leirja a pontos kezelest.
(#) vilmosd válasza Kovabe hozzászólására (») Nov 22, 2012 /
 
Az mar program kerdese. A kommunikacio sima sorosvonali kommunikacio, csak az adatiranyokat kell valtogatni. Az eszkozoknek kell azonositokat adni, majd az uzeneteket ugy megszerkeszteni, hogy " preamb byte, from, to, data, stop byte" legyen egy uzenetcsomag, majd a kezdemenyezo a kuldes utan szabadda teszi a vonalat. A megszolitott eszkoz egy kis varakozas utan hasonlo csomaggal valaszol.
(#) Kovabe válasza vilmosd hozzászólására (») Nov 22, 2012 /
 
A c rutint megköszönném mert kifelyezetten érdekel, mert valami megoldás kell és ha ez az akkor ez kellene.
Köszi Kovács Gábor
(#) vilmosd válasza Kovabe hozzászólására (») Nov 22, 2012 /
 
Na erre epp nincs C rutinom, de ha jol tevedek a CCS C mintapeldakban van egy hasonlo megoldas, aholis egy vonalon kommunikal tobb eszkoz, es ezzel a megoldassal zajlik a kommunikacio. Kiprobalva, jol mukodik tobb eszkoz kozott.
A hozzászólás módosítva: Nov 22, 2012

EX_PBUSM.C
    
(#) vilmosd válasza (Felhasználó 15355) hozzászólására (») Nov 23, 2012 / 1
 
Idézet:
„Megrángatod a CS lábat”
Csak vigyazz mert konnyen letorik.
(#) pjg válasza (Felhasználó 15355) hozzászólására (») Nov 23, 2012 /
 
Szerintem csinálsz az utolsó x db mérésből egy átlagot és ahhoz hasonlítva, ha extrém érték jön, eldobod.
(#) vilmosd válasza (Felhasználó 15355) hozzászólására (») Nov 23, 2012 /
 
A helyi CRC kepzesehez ki kell olvasni a 9 byte scratchpadot, aholis az utolso byte a CRC. Majd a 8 bytebol ki kell szamolni a helyi CRC-t amennyiben a ketto egyezik, akkor hibatlan az adatatvitel. Itt egy algoritmus a CRC ellenorzesere:
  1. byte calc_CRC_bit (byte shift_reg, byte data_bit)
  2.      {
  3.         byte fb;
  4.         fb = (shift_reg & 0x01) ^ data_bit;
  5.    /* exclusive or least sig bit of current shift reg with the data bit */
  6.  
  7.         shift_reg = shift_reg >> 1;    
  8.      / * shift one place to the right */
  9.  
  10.         if (fb==1)
  11.         {
  12.            shift_reg = shift ^ 8C; /* CRC ^ binary 1000 1100 */
  13.            }
  14.         return(shift_reg);
  15.      }
Indulaskor be kell tenni a "shift_reg" valtozoba a bejovo CRC-t, majd a 64x meghivni a bejovo 8 byte minden bitjevel. Ha 0 a vegeredmeny akkor hibatlan a vett adat.
(#) vilmosd válasza (Felhasználó 15355) hozzászólására (») Nov 23, 2012 /
 
Noch einmal:
  1. //calc_CRC - INTERNAL FUNCTION
  2. //Purpose:    To calculate an 8-bit CRC based on a polynomial and the series
  3. //            of data bytes
  4. //Note:       Polynomial used x^8 + x^5 + x^4 + 1 = 10001100
  5. //Inputs:     A pointer to an array of the data bytes and an int saying how many
  6. //            bytes there are in the data array
  7. //Outputs:    An int8 which is the calculated CRC
  8. int8 ds18b20_calc_CRC(int8* data, int8 bytes)
  9. {
  10.    #define CRC_POLY      0x8C
  11.    int8 shift_register = 0, i, datab, bits;
  12.  
  13.    for(i = 0; i < bytes; ++i)
  14.    {
  15.       datab = *(data + i);
  16.       for(bits = 0; bits < 8; ++bits)
  17.       {
  18.          if(bit_test((shift_register ^ datab), 0))
  19.          {
  20.             shift_register = shift_register >> 1;
  21.             shift_register ^= CRC_POLY;
  22.          }
  23.          else
  24.             shift_register = shift_register >> 1;
  25.          datab = datab >> 1;
  26.       }
  27.    }
  28.    return shift_register;
  29. } //calc_CRC
Ez szamolja a bejovo 8 byte CRC-t, es ezt kell osszehasonlitani a tavoli CRC-vel. Ha egyezik, akkor orul, ha nem megegyszer olvas.
Azert nem ertem mitol lehet hiba. Nalam valami 10-20 meteres bund vegen log a DS, es egy szabalyzo megy rola. Ha hibas adat jonne megbolonditana a PID-et, es elszallna a szabalyzo. De szepen dolgozik hiba nelkul hetek ota.
(#) baloghzoli1 válasza vilmosd hozzászólására (») Nov 23, 2012 /
 
Szia
Az adatlapot át böngésztem,c-ben nem tudok programozni ezért játszom ezzel ha gondolod rakd fel ide a rutint hátha másnak is szüksége lessz rá végsö esetre lehet az marad
(#) baloghzoli1 válasza (Felhasználó 15355) hozzászólására (») Nov 23, 2012 /
 
Szia
Ezt gondolom akkor software módban kell legyen a tulajdonságoknál?A hardware mód csak a saját paneljüknél müködik?Ez az SPI uninit mit csinál?
(#) vilmosd válasza baloghzoli1 hozzászólására (») Nov 23, 2012 /
 
Itt van. De ha nem tudsz programozni, hogyan akarsz ilyennel foglalkozni? Az AD kiolvasasa meg nem csinal semmit. Az adatot fel kell dolgozni.

3551.h
    
(#) slogan hozzászólása Nov 23, 2012 /
 
Sziasztok !

Kérdésem lenne...

Milyen irányban kellene indulnom ,ha azt szeretném megvalósítani ,hogy:
- adva van egy PIC ,aminek a PWM kimenetén van egy - természetesen - változtatható négyszög jel
- van egy másik PIC ,ami ezt veszi ,majd generál egy ugyan olyat és kiadja szintén a PWM kimeneten

Köszi !
(#) kaqkk válasza slogan hozzászólására (») Nov 23, 2012 /
 
A kijövő PWM jelet egyenirányítsd szűrd egy kis kondival , majd a keletkezett egyenfeszt adc vel mérve már meg tudod oldani az adc-pwm konverziót
A hozzászólás módosítva: Nov 23, 2012
(#) slogan válasza kaqkk hozzászólására (») Nov 23, 2012 /
 
Nem biztos ,hogy "analógosítani" kellene egy jó kis 4szög jelet
(#) pjg hozzászólása Nov 23, 2012 /
 
A legutóbbi Flowcode indításkor azt írta ki a képernyőre, hogy "Ez az alkalmazás nem Windows32 alkalmazás".
Azóta sem megy. Újra telepítettem de nincs változás. Más programok működnek. Mi lehet?
(#) watt válasza slogan hozzászólására (») Nov 23, 2012 /
 
A szükséges alkatrész egy drótdarab...

Ha módosítani akarod a jelet, akkor van értelme a feladatnak és van megoldás is, bár flowcode-ban nem biztos, hogy le lehet programozni C nélkül...
(#) watt válasza (Felhasználó 15355) hozzászólására (») Nov 23, 2012 /
 
Igen, abból ki lehetne indulni. De nem biztos, hogy PWM modult kéne használni, egyszerűen csak a megszakításokban lehetne módosítani, vagy nem, a kimenő jelet, azaz egy lábat.
Viszont ez a kódom tele van C-vel...
A hozzászólás módosítva: Nov 23, 2012
(#) slogan válasza watt hozzászólására (») Nov 23, 2012 /
 
Egyelőre az a feladat ,hogy a "második" PIC kövesse le az elsőt ,tehát ua. a PWM menjen ki.
Majdan lesz egy olyan kapcsoló ,ami a második pic PWM -jét "manipulálja"
(#) kaqkk válasza slogan hozzászólására (») Nov 23, 2012 /
 
Az nem lenne járható ha csak a PWM adatait küldenéd át a másik picbe mondjuk isp-n vagy rs232-n ? Úgy értem hogy van egy változód aminek az értéke meghatározza a PWM kitöltését , ennek az értékét küldöd át a második picbe és ott ez már ugyanazt a kitöltést fogja generálni , manipulálni is csak ezt az átküldött adatot kéne a következő lépésben , a kommunikációt is elég lenne csak az érték változásakor indítani .
A hozzászólás módosítva: Nov 23, 2012
(#) slogan válasza kaqkk hozzászólására (») Nov 23, 2012 /
 
Nem....
Következő: »»   90 / 360
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