Fórum témák

» Több friss téma
Fórum » DS18B20 hőmérő-szenzor
 
Témaindító: Korben, idő: Nov 16, 2005
Témakörök:
Lapozás: OK   21 / 39
(#) kissi válasza don_peter hozzászólására (») Okt 21, 2015 /
 
Ez így ránézésre jónak tűnik, a minimum időket elvileg hoznia kell ( ha jól van beállítva és az 1us tényleg annyi ! ) ! Szkóppal mit látsz? A mester kiadja GND-t min. 480 us-ig ? Utána a felhúzóellenállás visszaviszi a szintet '1'-re ? DS nem húzza újra nullára? Ha nem, akkor DS kuka!
A mutatott kódban csak a függvényeid vannak, a main nincs !
A hozzászólás módosítva: Okt 21, 2015
(#) don_peter válasza kissi hozzászólására (») Okt 21, 2015 /
 
Jelen pillanatban csak ez a két rutin fut le.
  1. prvWireReset();
  2. prvWirePresence();

De ahogy fentebb is láthatod, megakasztom a futást, hogy lássam van e visszajelzés.
Nincs, tehát a 480us alatt nem húzza a DQ lábat alacsony szintre a DS.
Az időzítés szerintem jó, bár lehet benne hiba, de ezt kétlem, többször átnyálaztam az osztásokat és elvileg annyi amennyinek kell lennie.
Az 1us és az 1ms-is.
16MHz-es kristály 4xPLL bekapcsolva 64MHz-n fut a 18F46K22.
Ez a max amit tud.
Ez leosztva: 1/(64000000/4) == 0.0000000625
Tehát egy ciklus idő 0.0000000625.
Ezt felszorzom 16-al és az eredmény 0.000001 vagy is 1us.
Vagy is Nop() * 16 == 1us
Illetve (Nop() * 16)*1000 = 1ms

Elvileg az időzítés tökéletes.
Az, hogy a DS18B20 hibás lenne kétlem, mert a szimulátorban sem működik és ott nem lehet kidögleszteni az alkatrészt
Szóval szimulálom is és élesben is tesztelem, de amíg szimulátorban nem lesz jó, addig élőben sem sajnos.

Szóval megint csak leblokkoltam, hogy miért nem jó.
A PIC beállítása is szerintem jó, más perifériával nem volt még gondom pedig egy két kényesebb időzítés már kellett, és ment az összes, de ez kifog rajtam és roppant mód szúrja a csőröm
Skópom itt Pesten nincs sajnos, így azzal mérni nem tudok.

Vélemény?
A hozzászólás módosítva: Okt 21, 2015
(#) kissi válasza don_peter hozzászólására (») Okt 21, 2015 / 1
 
Mennyire sürgős? Ma nem érek rá, de ha holnap elküldöd a hex-et ( config bitekkel !), akkor megnézem neked szkóppal, hogy mi újság !?

De a Proteusban nem tudod szkóppal megnézni ?!
A hozzászólás módosítva: Okt 21, 2015
(#) don_peter válasza kissi hozzászólására (») Okt 22, 2015 /
 
Persze, simán van időm rá, hiszen ameddig nem működik, úgy sem tudok vele mit kezdeni.
Átlépek win-be és generálok egy hex-et, mert most debug módba vagyok.
Gondolom a program leakasztását vegyem ki belőle..?
A szenzor lekérdezését tegyem bele a főciklusba?
Tehát a while(1) futtassa a DS lekérdezését?

De megnéztem Proteus-ban is, és azt mutatja amit linkeltem képet az előző oldalon.
Abból meg elég nehéz kihámozni, vagy nem jól használom..
A hozzászólás módosítva: Okt 22, 2015
(#) kissi válasza don_peter hozzászólására (») Okt 22, 2015 / 1
 
Megpróbálhatjuk a lekérdezést is, de csak estefelé leszek otthon próbára elvileg...!
Az első mindenképpen a jelenlét kell, hogy legyen !
Egyéni azonosítót adsz ki vagy általános lekérdezést használsz ?!
(#) Taki33 válasza kissi hozzászólására (») Okt 22, 2015 /
 
Szia!
A DS18B20 nagyon kényes a megszakításokra, így azokat le kell tiltani a konvertálás és kiolvasás idejére!

  1. GIE = 0;        //Disable Interrupts!
  2.                 OW_RESET();
  3.                 DSTXBYTE(0xCC);
  4.                 DSTXBYTE(0x44);
  5.                 GIE = 1;        //Enable Interrupts
  6.                 for(i=750; i==0; i--) Delay10KTCYx(16);
  7.                 GIE = 0;        //Disable Interrupts!
  8.                 OW_RESET();
  9.                 DSTXBYTE(0xCC);
  10.                 DSTXBYTE(0xBE);
  11.                 tempe = DSRXBYTE();
  12.                 tempe += (DSRXBYTE() << 8);
  13.                 GIE = 1;        //Enable Interrupts
A hozzászólás módosítva: Okt 22, 2015
(#) kissi válasza Taki33 hozzászólására (») Okt 22, 2015 /
 
Nem a megszakításokra kényes, hanem az időzítésekre! Én csak az időzítések alatt szoktam letiltani , nem az összes, vele kapcsolatos művelet ideje alatt, mert így blokkolod a megszakításokat is !
A hozzászólás módosítva: Okt 22, 2015
(#) don_peter válasza kissi hozzászólására (») Okt 22, 2015 /
 
Hát most először is, azt tapasztalom, hogy csináltam egy 100ms időnkénti szintváltást a C0-ás lábra.
És a képen is látszik, hogy valami nem kerek, mert hogy 100ms helyett 332.5ms-os idővel vált szintet a porton.
Valami nagyon nem jó, ha a Proteus-nak lehet hinni.
Mit rontok el mikor beállítom az 1us-t vagy az 1ms-t?
Itt vannak a comfig bitek beállításai:
  1. //CONFIG1H
  2. #pragma config FOSC             = HSMP          //0xF3  HS oscillator (medium power 4-16 MHz).
  3. #pragma config PLLCFG   = ON            //0xFF  Oscillator multiplied by 4xPLL
  4. #pragma config PRICLKEN = ON            //0xFF  Primary clock is always enabled.
  5. #pragma config FCMEN    = OFF           //0xBF  Fail-Safe Clock Monitor disabled.
  6. #pragma config IESO     = OFF           //0x7F  Oscillator Switchover mode disabled.
  7. //CONFIG2L
  8. #pragma config PWRTEN   = ON            //0xFE  Power up timer enabled.
  9. #pragma config BOREN    = ON            //0xFB  Brown-out Reset enabled and controlled by software (SBOREN is enabled).
  10. #pragma config BORV     = 285           //0xE7  VBOR set to 2.85 V nominal.
  11. //CONFIG2H
  12. #pragma config WDTEN    = OFF           //0xFC  Watch dog timer is always disabled. SWDTEN has no effect.
  13. #pragma config WDTPS    = 256           //0xE3  1:256.
  14. //CONFIG3H
  15. #pragma config CCP2MX   = PORTC1        //0xFF  CCP2 input/output is multiplexed with RC1.
  16. #pragma config PBADEN   = OFF           //0xFD  PORTB<5:0> pins are configured as digital I/O on Reset.
  17. #pragma config CCP3MX   = PORTB5        //0xFF  P3A/CCP3 input/output is multiplexed with RB5.
  18. #pragma config HFOFST   = OFF           //0xF7  HFINTOSC output and ready status are delayed by the oscillator stable status.
  19. #pragma config T3CMX    = PORTC0        //0xFF  T3CKI is on RC0.
  20. #pragma config P2BMX    = PORTD2        //0xFF  P2B is on RD2.
  21. #pragma config MCLRE    = EXTMCLR       //0xFF  MCLR pin enabled, RE3 input pin disabled.
  22. //CONFIG4L
  23. #pragma config STVREN   = ON            //0xFF  Stack full/underflow will cause Reset.
  24. #pragma config LVP              = OFF           //0xFB  Single-Supply ICSP disabled.
  25. #pragma config XINST    = OFF           //0xBF  Instruction set extension and Indexed Addressing mode disabled (Legacy mode).
  26. #pragma config DEBUG    = OFF           //0xFF  Disabled.
  27. //CONFIG5L
  28. #pragma config CP0      = OFF       // Kódvédelem kikapcsolva
  29. #pragma config CP1      = OFF
  30. #pragma config CP2      = OFF
  31. #pragma config CP3      = OFF
  32. //CONFIG5H
  33. #pragma config CPB      = OFF           // Boot Blokk kódvédelem kikapcsolva
  34. #pragma config CPD      = OFF           // Eeprom kódvédelem kikapcsolva
  35. //CONFIG6L
  36. #pragma config WRT0     = OFF           // Írásvédelem kikapcsolva
  37. #pragma config WRT1     = OFF
  38. #pragma config WRT2     = OFF
  39. #pragma config WRT3     = OFF
  40. //CONFIG6H
  41. #pragma config WRTB     = OFF           // Boot Blokk írásvédelem bekapcsolva
  42. #pragma config WRTC     = OFF           // Configuration Register Write Protection
  43. #pragma config WRTD     = OFF           // Data EEPROM Write Protection
  44. //CONFIG7L
  45. #pragma config EBTR0    = OFF       // Táblázatolvasás ne legyen letiltva
  46. #pragma config EBTR1    = OFF
  47. #pragma config EBTR2    = OFF
  48. #pragma config EBTR3    = OFF
  49. //CONFIG7H
  50. #pragma config EBTRB    = OFF       //Boot blokk táblaolvasás ne legyen letiltva
  51. #include <delays.h>
  52.  
  53. void Delay_Us(unsigned int us){ // 1/(64000000/4) == 0.00000000625 * 16 = 0.0000001 == 1us
  54.         unsigned char i;
  55.         for(i=(16*us); i>0; i--) Delay1TCY();
  56. }
  57.  
  58. void Delay_Ms(unsigned int ms){ // 1/(64000000/4) == 0.00000000625 * 16*10000 = 0.001 == 1ms
  59.         unsigned char i;
  60.         for(i=ms; i>0; i--) Delay10KTCYx(16);
  61. }

Regiszterek:
  1. void init(void){
  2.  
  3.     /*********************************************
  4.         +               Ki / Bemenetek
  5.         **********************************************/
  6.         TRISA = 0;
  7.         PORTA = 0;
  8.         TRISD = 0;
  9.         PORTD = 0;     
  10.         TRISB = 0;
  11.         PORTB = 0;
  12.         TRISE = 0;
  13.         PORTE = 0;
  14.         TRISC = 0;              // PWM portok és egyébbek, teljes port kimenetre állítva
  15.         PORTC = 0;
  16.        
  17.         ADCON0 = 0;             // ADC le van tiltva
  18.         ADCON1 = 0;
  19.         ADCON2 = 0;
  20.        
  21.         CM2CON1 = 0;
  22.         CM1CON0 = 0;
  23.         CM2CON0 = 0;
  24.        
  25.         ANSELA = 0;             // Digital input buffer enabled
  26.         ANSELB = 0;
  27.         ANSELC = 0;
  28.         ANSELD = 0;
  29.         ANSELE = 0;
  30.        
  31.         OSCCON = 0;     // Primary Clock-ot használjuk CONFIG1H beállításai szerint
  32.     OSCCON2 = 0x04; // Oscillator drive circuit on
  33.     OSCTUNE = 0x20; // PLL enabled
  34.        
  35.         CCP1CON = 0;    // Coperátorok és PWM kikapcsolva
  36.         CCP2CON = 0;
  37.         CCP3CON = 0;
  38.         CCP4CON = 0;
  39.         CCP5CON = 0;
  40. }

És csatolom a hex fájlt is.
(#) kissi válasza don_peter hozzászólására (») Okt 22, 2015 / 1
 
Idézet:
„void Delay_Us(unsigned int us){ // 1/(64000000/4) == 0.00000000625 * 16 = 0.0000001 == 1us
unsigned char i;
for(i=(16*us); i>0; i--) Delay1TCY();
}”


Azért ez nem biztos ! Assemblyben ez látszana, hogy nem "csak" 16-ot számol és kész, hanem közben ugrándozik, ami plussz idő ( de szimulátorban is mérhető az MPLAB-ban ) !
Idézet:
„void Delay_Ms(unsigned int ms){ // 1/(64000000/4) == 0.00000000625 * 16*10000 = 0.001 == 1ms
unsigned char i;
for(i=ms; i>0; i--) Delay10KTCYx(16);
}”


Ez meg pláne nem jó, mert min. 10 ms-ra jön ki, nem 1-re ( az előbb TCY*16 az 1 us lett volna, most megszorzod 10000-el, az szerinted mennyi lesz ?! ) !
(#) don_peter válasza kissi hozzászólására (») Okt 22, 2015 /
 
Ne azt nézd.
Hanem ezt: Delay10KTCYx(16);
Itt van a delay gyári könyvtárából:
  1. /* Delay of exactly 1 Tcy */
  2. #define Delay1TCY() Nop()

Ebből csinálok 1us-t, ha 16-al megszorzom, mivel a ciklus idő 0.00000000625.

Ez pedig az ms-ért felelős:
  1. /* Delay10KTCYx
  2.  * Delay multiples of 10,000 Tcy
  3.  * Passing 0 (zero) results in a delay of 2,560,000 cycles.
  4.  * The full range of [0,255] is supported.
  5.  */
  6. void Delay10KTCYx(PARAM_SCLASS unsigned char);


A lényeg, hogy ha 0.00000000625 egy ciklus idő akkor ezt fel kell szorozzam elsőnek 16-al ez ad 1us-t.
Ezt végül meg kell szorozzam ezerrel és akkor lesz 1ms, de ez most lényegtelen.

Ha a Delay10KTCYx();-el számolok, akkor ekképpen alakul.
1 Delay10KTCYx(1) == 10 000 vagy is == 0.00000000625*10 000 == 0,0000625 ezt fel kell még szorozzam 16-al == 0,001 vagy is 1ms.
Érted a számolásom?
Elvileg ennek jónak kellene lennie, bár már kételkedem benne, de a számolás tuti jó, de az elv lehet hibás.
A hozzászólás módosítva: Okt 22, 2015
(#) Bell válasza don_peter hozzászólására (») Okt 22, 2015 / 1
 
Megnéztem Arduino-val egy DS18B20-at, rövid vezetékkel már 220usec resetre reagált:
  1. int ds18= 10;
  2. unsigned long int t1, t2, t3, in, i;
  3. void setup() {
  4.    Serial.begin(9600);
  5. }
  6.  
  7. void loop() {
  8.  for(i=1; i<10; i++){
  9.    pinMode(ds18, OUTPUT);
  10.    digitalWrite(ds18, HIGH);
  11.    delayMicroseconds(10);
  12.    digitalWrite(ds18, LOW);
  13.    delayMicroseconds(220);
  14.    digitalWrite(ds18, HIGH);
  15.    pinMode(ds18, INPUT);
  16.    t1 = micros();
  17.    while(digitalRead(ds18)==1);
  18.    t2 = micros();
  19.    while(digitalRead(ds18)==0);
  20.    t3 = micros();
  21.    Serial.print("Adatok[microsec] kezdet:  ");
  22.    Serial.print(t1);
  23.    Serial.print(" valasz[LOW]: ");
  24.    Serial.print(t2-t1);
  25.    Serial.print(" valasz[HIGH]: ");
  26.    Serial.println(t3-t2);
  27. }
  28.   while(1);
  29.  
  30. }

A válaszok:
  1. Adatok[microsec] kezdet:  312 valasz[LOW]: 24 valasz[HIGH]: 116
  2. Adatok[microsec] kezdet:  1648 valasz[LOW]: 28 valasz[HIGH]: 112
  3. Adatok[microsec] kezdet:  69392 valasz[LOW]: 24 valasz[HIGH]: 116
  4. Adatok[microsec] kezdet:  139072 valasz[LOW]: 24 valasz[HIGH]: 116
  5. Adatok[microsec] kezdet:  209792 valasz[LOW]: 24 valasz[HIGH]: 116
  6. Adatok[microsec] kezdet:  280512 valasz[LOW]: 24 valasz[HIGH]: 116
  7. Adatok[microsec] kezdet:  351236 valasz[LOW]: 20 valasz[HIGH]: 116
  8. Adatok[microsec] kezdet:  421956 valasz[LOW]: 28 valasz[HIGH]: 116
  9. Adatok[microsec] kezdet:  492676 valasz[LOW]: 28 valasz[HIGH]: 116
(#) don_peter válasza Bell hozzászólására (») Okt 22, 2015 /
 
Köszi, de ezzel az adattal még én semmire nem megyek, mert nekem nem reagál.
Fogalmam nincs már, hogy miért és hol hibázok, annyira bele vagyok már keveredve mint macska a spárgába, nem látom a fától az erdőt, egyszóval káosz ül a fejembe
Durva..., elvileg minden jó és még sem jó, kell egy friss szem aki a szimultánban rá tud nézni.
Előző oldalra feltöltöttem a teljes projektet.
De felteszem a mostanit is. (C18 fordító kell hozzá)

ui: próbálgattam az időzítést kézzel állítgatni, lejjebb majd feljebb, hogy hátha, de semmi változás.
A hozzászólás módosítva: Okt 22, 2015
(#) kissi válasza don_peter hozzászólására (») Okt 22, 2015 / 1
 
Idézet:
„Ebből csinálok 1us-t, ha 16-al megszorzom, mivel a ciklus idő 0.00000000625.”

Na ez nem megy, ha te is érted, amit írtam ... ! Az OK, hogy 16-szor akarod meghívni, de akkor 16-szor kell leírni a Nop()-ot! Ha ciklusba teszed, akkor az inicializálás, az inkrementálás utáni vizsgálat mind-mind további utasítások, így nem 16 us lesz a 16-os ciklusod!

Idézet:
„1 Delay10KTCYx(1) == 10 000 vagy is == 0.00000000625*10 000 == 0,0000625 ezt fel kell még szorozzam 16-al == 0,001 vagy is 1ms.”

A 64 MHz-nek megfelelő TCY=0,0000000625 s és nem 0,00000000625 s, így a beállított értéked nem 1 ms, hanem 10 ms !

Szerintem értettem a számolásod, Te érted az enyémet ( írtad is, hogy 1000-el kell szorozni, akkor ne a Delay10KTCYx()-t használd ! ) ?!
A hozzászólás módosítva: Okt 22, 2015
(#) Kovidivi válasza don_peter hozzászólására (») Okt 22, 2015 / 1
 
Egyszerű a megoldás.
Először készíts egy mondjuk 1 perces számlálót, kapcsolgasd a LED-et 1 percenként, és mérd meg, hogy az 1 perc tényleg 1 perc-e. Amíg nincs egy normális időalapod, addig felesleges továbbmenned.
Ezután fogd az adatlapot, és indulj el az elejéről. Azt mondja, kell egy reset. Húzd le a lábat, várj 480uS-ot, aztán engedd el, várj még egy kicsit, hogy a láb tényleg magas legyen, majd kezd el figyelni, hogy van-e erre reakció, ha igen, világítson a LED. Csak ennyi legyen a programod, ne több. Ehhez 1 LED kell, más nem. Aztán mehetsz tovább. Felesleges belevágni a közepébe, ha még az 1uS se 1uS.
Nincs valami delay_ms függvény, hogy ne kelljen számolgatni?
Egyébként ha ennyire nem stimmel az időzítés, akkor még sincs megfelelően felkonfigurálva az a PLL, meg amit még fel kell.
(#) don_peter válasza kissi hozzászólására (») Okt 22, 2015 /
 
Oksa értem, 1 nullával többet írtam.
Igazad van, nem 10000 hanem 1000 kell.
És igen további időveszteség, a többlet utasítás, de ennek bele kell férnie.
Este kipróbálom.

Kovidivi: este lépésről lépésre végig megyek megint..
A hozzászólás módosítva: Okt 22, 2015
(#) Hp41C válasza don_peter hozzászólására (») Okt 22, 2015 / 1
 
Fisc mire van definiálva. Ezzel a konstanssal tudod megadni a delay* függvényeknek a rendszer órajel frekvenciáját.
PIC18F2550: 20 MHz, PLLDIV = 5, PLL, PLL postscalar = 2: 48MHz
  1. #define  Fosc 48000000L  // 48MHz
(#) don_peter válasza Hp41C hozzászólására (») Okt 22, 2015 /
 
Nos tutira az időzítéssel van gond.
Most ugyan már mutat valamit, de még nem az igazi.
Nem stabil az időzítés.
Van ötletetek, hogy a fentebb belinkelt kódok alapján, hogy tudok egy stabil késleltető rutint írni?

A baj az, hogy ha beállítom, hogy 1us meglegyen akkor jó lesz, de ha emelem mondjuk 50us-re a már megírt rutint akkor már elcsúszik az egész.
1 és 500us közt lehet akár 250us eltérés is, ms-nél is van csúszás.
Ez mondjuk már PIC-es téma, lehet ott kellene folytatni.
(#) kissi válasza don_peter hozzászólására (») Okt 22, 2015 /
 
Akkor már látod a hibát, azt kellene első körben kijavítani és ha majd a "tuti" időzítés mellett sem jó, akkor kell tovább vizsgálódni !
(#) don_peter válasza kissi hozzászólására (») Okt 22, 2015 /
 
Igen, értem amit írtál, de nem tehetek 16*550 Nop()-ot amikor annyi kell.
Ha meg nem teszek, akkor megint csak ciklust kell használnom.
Ugyan ott vagyok..

Mi a megoldás?
(#) kissi válasza don_peter hozzászólására (») Okt 22, 2015 / 1
 
16 * 550 = 8800 -->
  1. Delay1KTCYx(8);
  2. Delay100TCYx(8);

Ez miért nem jó ?
A hozzászólás módosítva: Okt 22, 2015
(#) don_peter válasza kissi hozzászólására (») Okt 22, 2015 /
 
Ja, hogy több függvénnyel hozzam össze.
Megnézem mit mutat, mert élesben nem megy sajnos.

Akövetkező akkor:
16*70 == 1120
  1. Delay1KTCYx(1);
  2. Delay100TCYx(1);
  3. Delay10TCYx(2);
A hozzászólás módosítva: Okt 22, 2015
(#) kissi válasza kissi hozzászólására (») Okt 22, 2015 /
 
Megcsinálhatod így is :
  1. Delay100TCYx(88);

!
(#) don_peter válasza kissi hozzászólására (») Okt 22, 2015 /
 
Jaja, megoldottam, de élesben nem megy a cucc.
Szimulátorban már pöpec, de élesben valami még nem kerek...
Kellene egy oszcillátor, hogy meg tudjam mérni mennyi is az annyi, fene...
(#) don_peter hozzászólása Okt 23, 2015 /
 
Szimulátorban már jól működik a dolog, de élesben sajnos nem.
És fingom nincs miért.
A jelenléti jel is megérkezik szimulátorban is, igaz csak a második lefutáskor, de élesben egyáltalán nem jön visszajelzés a DS-től.
2 DS-em van itthon és mindegyik ugyan azt csinálja, vagy is, semmit.

Még mindig az időzítéssel lehet gond?
Már 100féle képen kipróbáltam az időzítéseket is, egyszerűen nem tudom rávenni, hogy végre élesben is működjön.
Lehet ki kell dobjam a kukába mert egy pocsék és brutál kényes egy alkatrész ez a DS18B20.

ui: a vezetékezés hossza mennyire problémás?
Kb. 10-15cm vezeték van a PIC és a DS közt.
A hozzászólás módosítva: Okt 23, 2015
(#) Bakman válasza don_peter hozzászólására (») Okt 23, 2015 / 1
 
Több helyen jól működik, hosszú kábelekkel is. Hogy hogyan, azt nem tudom, nem ismerem a C nyelvet.
(#) don_peter válasza Bakman hozzászólására (») Okt 23, 2015 /
 
100szor átnéztem mident, időzítéseket is elejétől a végéig, oda-vissza és semmi.
Szimulátorban frankón működik, de élesben meg sem moccan.
Hibás lehet mind a 2 szenzor?
Komolyan nem tudom már merre induljak tovább.
(#) pont válasza don_peter hozzászólására (») Okt 23, 2015 / 1
 
Tölts le egy kész Ds-es programot valahonnan, bármilyen chipre ami van otthon és probáld le a Ds-eket. (Ha AVR-ed is van küldhetek én is) Ha a Ds jó, tényleg lépésről lépésre írj programot. Ahogy írták, az időalapot ellenőrizheted leddel a valóságban, aztán már csak a hat parancs van... Működik az hosszú vezetékekkel is. Gondolom a 4.7k külső felhúzóellenállás ott van. Nem a Ds a programozás kancsendzöngája.
(#) kissi válasza don_peter hozzászólására (») Okt 23, 2015 / 1
 
Szia!
Küldd át a hex-et, amit használsz és megnézem ,hogy "mit követ el" a programod !
A konfigurációs bitek legyenek benne a hex fájlban, mert úgy akarom beállítani, ahogy neked van !
Ha gyors vagy, akkor most ránézek !
(#) Kovidivi válasza don_peter hozzászólására (») Okt 23, 2015 / 1
 
Már ajánlottam, hogy készítsd egy 2 perces időzítőt LED-el, és mérd le, hogy mennyi is az a 2 perc. Megtetted? Mert akkor kiderülne végre, hogy sikerült-e felkonfigurálnod a PIC-ed.
(#) don_peter válasza Kovidivi hozzászólására (») Okt 24, 2015 /
 
pont: írtam már sokkal, bonyolultabbat is, de eddig ez bizonyul a leg nehezebbnek, időzítés szempontjából. LED villogás megvolt, 4.7k felhúzó megvan.

Kovidivi: igen, köszönöm, ez mindig alap, ha időzítéssel vacakolok, termesztésen megvolt a LED-es tesztelés és vissza ellenőrzés.

Nem először használom ezt a PIC-et és ezért nem volt egyértelmű, hogy most mi a bánat is van.
Bár az is igaz, hogy talán ennyire pontos időzítésre még nem is volt szükségem soha.

Kissi tegnap este kipróbálta az enyémről mintázott, saját próbapanelján a programot és őnála simán működik, a furcsa viszont az, hogy nálam még mindig nem működik
Lehet vettem 2 döglött DS-t.
Ez mondjuk mindent megmagyarázna.
Következő: »»   21 / 39
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