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   405 / 1210
(#) Bell válasza nedudgi hozzászólására (») Ápr 28, 2013 /
 
Na igen, de az eredmény 4,7 Volt. Rossz lehet a PicKit3?
(#) nedudgi válasza Bell hozzászólására (») Ápr 28, 2013 /
 
Jó méréshatárban van a műszered ?
Valahonnan kap még tápot az a panel. Én a Pickit3-ról mindent rosszat elhiszek, de ez csak akkor lehetséges, ha kívülről jön az 5V a panelra. Vagy tényleg elromlott.
(#) dave77 válasza Bell hozzászólására (») Ápr 28, 2013 /
 
Köszi, ilyesmire gyanakodtam.
Hogy tudom a PORTC összes lábát digitális I/O ra állítani?
(#) Bell válasza dave77 hozzászólására (») Ápr 28, 2013 /
 
Nézd meg a doksit. Az ANSEL és ANSELH regisztereknél jól le van írva.
(#) dave77 válasza Bell hozzászólására (») Ápr 28, 2013 /
 
Köszi, megvan, működik is!
Minden kezdet nehéz... Bocsi a bénázásért...
(#) Bell válasza nedudgi hozzászólására (») Ápr 28, 2013 /
 
Nincs más feszütségforrás. Kerítettem egy másikat, az helyes értéket mutat
Közben kiderült, hogy alacsony a tápja az előző műszeremnek...
(#) nedudgi válasza Bell hozzászólására (») Ápr 28, 2013 /
 
Akkor közel jártam az igazsághoz. A lényeg az, hogy nem romlott el...
(#) Bell válasza nedudgi hozzászólására (») Ápr 28, 2013 /
 
De nagyon hasznos volt a felvetés, mert már szét is szedtem és elraktam mindent, abban a hiszemben, hogy elszállt.
(#) Hp41C válasza Doky586 hozzászólására (») Ápr 28, 2013 /
 
Egy 16F628A esetén tényleg nem sok lehetőséget hoz az LVP, de pl. egy 16F145x esetén a programozó lábak is mások: LVP esetén az RA0/D+/ICSPDAT - RA1/D-/ICSPCLK (3.3V -os), HVP esetén a RC0/ICSPDAT - RC1/ICSPCLK (5V -os) lábakat kell használni.
Nem kell manuálisan nyomni a resetet, nyugodtan összeküthető a PICKit2 vagy PICKit3 Vpp/MCLR kivezetésével - LVP módnál a pickit nem ad ki a Vdd -nél nagyobb feszültéget.

A PICKit2 -ben egy 18F2550 dolgozik, egy port lába kb 20mA -rel terhelhető. A legrosszabb esetben a programozó lábat a cél rendszerben egy kimenet hajtja meg. A 18F2550 kimenetén az áram nem haladhatja meg a 20mA -t akkor sem, ha a cél rendszer a programozó lábat az ellenkező szinttel hajtja meg. A feszültség különbség 5V lehet maximálisan. Ebben az esetben 1k ellenállás is 5mA -re korlátozza az áramot. Az áram korlátozása mellett a kapacitív terhezésel leválasztását is el kell látnia ennek az ellenállásnak, azaz a programozó lábra csatlakozó kapacitás nem okozhat jelentős torzítást a fel - lefutó éleken. A PICKit2 összes áramfelvétele nem haladhatja meg a 100mA -t.
A hozzászólás módosítva: Ápr 28, 2013
(#) janimester válasza Hp41C hozzászólására (») Ápr 28, 2013 /
 
Köszi a választ, nézegettem is de valahogy nem akaródzott összejönni gondoltam hogy a port nincs definiálva azért nem jó csak ez a teszem azt 0b001001 nem tudom miből tevődik össze ami a konkrét portra mutat mondjuk ha ezt meg tudnám fejteni hogy kell összerakni már lehet menne később magamtól is
(#) Doky586 válasza Hp41C hozzászólására (») Ápr 28, 2013 /
 
Köszönöm a válaszod.
(#) Hp41C válasza janimester hozzászólására (») Ápr 28, 2013 / 1
 
Szia!
Csak RA0 analóg, +Vref = Vdd, -Vref = Vss:
ADCON1 = 0x0E;
Az ADRES regisztereket írni felesleges.
(#) siemenstaurus hozzászólása Ápr 29, 2013 /
 
Rosszul fogalmaztam. Megtaláltam ezeket a példákat, de ilyen "szájbarágósan" még nem leltem magyarázatot. Nem akartam sérteni senkit, csak tanulni szeretném az analógot és nem volt tiszta egy két dolog.
Nektek köszönhetően jutottam azóta előre viszont nem értem a harmadik bemenetet miért nem tudja megenni?
Zavar lehet a bemeneten kimeneten, valamit le kellene tiltani? AN3at külön megjelölni analóg bemenetként? Megtelik az ADRES? Vagy az törli magát és ez hülye gondolat?
AN10 és AN11 és a tőle függő RC0 RC1 RC2 RC3 működik, viszont AN3 nem reagál és RC5 villog a csatornaváltás utáni késleltetéstől függően. Mintha AN3 nem is lenne. Kettővel minden rendben, háromnál mi lehet a gond?
Illetve ha így "csúnya" a kód, bármiféle szépítő jellegű tanácsot szívesen fogadok és nagyon köszönök!

  1. #include <p18f14k50.h>
  2. #include "adc.h"
  3. #include "delays.h"             //beepitett fuggv hasznalata
  4. #pragma config LVP = OFF
  5. #pragma config WDTEN = OFF
  6.  
  7. while(1)
  8. {
  9.  
  10.                 ADCON0 = 0b00101001;    //AN10 menetszabályozó
  11.                 ADCON1 = 0b00000000;
  12.                 ADCON2 = 0b10101010;
  13.                 Delay1KTCYx(10);
  14.                 ADCON0bits.GO = 1;
  15.                
  16.                 while(ADCON0bits.NOT_DONE);
  17.                 i = (((unsigned int)ADRESH) << 8 ) | ADRESL;  
  18.                 i= ReadADC();  
  19.  
  20. műveletek i vel
  21.  
  22.  //---------------------------------------------------------------------------------------             
  23.                 ADCON0 = 0b00101101;    //AN11 D12fekezoszelep
  24.        
  25.                 Delay1KTCYx(10);
  26.                 ADCON0bits.GO = 1;
  27.        
  28.                 while(ADCON0bits.GO_DONE != 0);                          //csak gyakoroltam az utasításokat
  29.                 j = (((unsigned int)ADRESH) << 8 ) | ADRESL;
  30.                 j= ReadADC();
  31.  
  32. műveletek j vel
  33. //------------------------------------------------------------------------------------------
  34.  
  35.                 ADCON0 = 0b00001101;    //AN3 ZBR fekezoszelep
  36.        
  37.                 Delay1KTCYx(10);
  38.                 ADCON0bits.GO = 1;
  39.                
  40.                 while(ADCON0bits.GO_DONE != 0);
  41.                 k = (((unsigned int)ADRESH) << 8 ) | ADRESL;
  42.                 k= ReadADC();
  43.  
  44. műveletek k val
  45. //---------------------------------------------------------------------------
  46.  
  47. }
(#) kissi válasza siemenstaurus hozzászólására (») Ápr 29, 2013 /
 
Szia!
Lehet, hogy valami előzménnyel nem vagyok tisztában, de a programod logikája nekem furcsa egy kicsit: az i, j, k változókba berakod az ADRESH és ADRESL értékeit, utána pedig egyenlővé teszed ezeket az értékeket egy fv. visszatérési értékeivel, miközben nem történt semmi kiíratás vagy egyéb művelet! A ReadADC egyébként nem egy AD olvasó fv. lenne ( csak annak a tartalmát meg nem látom ! ) ?!
(#) siemenstaurus hozzászólása Ápr 29, 2013 /
 
Ja hogy ez a két sor ugyanaz lenne? ReadADC() ADRES-ből olvassa az értéket??

j = (((unsigned int)ADRESH) << 8 ) | ADRESL;
j= ReadADC();

Kivettem egyszer egyiket másszor másikat és működik...
Elnézést.
De a harmadik AN bemenetet még igy sem szeretné elfogadni.
A hozzászólás módosítva: Ápr 29, 2013
(#) Llajti válasza siemenstaurus hozzászólására (») Ápr 29, 2013 /
 
Amíg még volt mplab c, az szimulációban/debugkor automatikusan megnyitotta és megmutatta a ReadADC fv.-t. Most kipróbáltam az XC8 fordítóval és úgy látom, az már nem teszi (bár talán valami beállítással rábírható). Kár, mert abból ezt rögtön láthattad volna, alapból sajnos nem nyilvánvaló, mit is csinál pontosan a fv.
Szerk.:
Nálam a c:\Program Files\Microchip\xc8\v1.12\sources\pic18\plib\ADC\ mappában megtalálható az adcread.c és ebben a fv. Elvileg ez az alapértelmezett útvonal, szóval akár meg is nyithatná automatikusan, de nem teszi, talán csak nálam van gubanc. A c:\Program Files\Microchip\xc8\v1.12\sources\pic18\plib\ mappában egyébként megtalálod az összes többi periféria függvényt is, ha valami nem megy, vagy új perifériát próbálunk, érdemes nézegetni.
A hozzászólás módosítva: Ápr 29, 2013
(#) Hp41C válasza siemenstaurus hozzászólására (») Ápr 29, 2013 /
 
Szia!
Milyen oszcillátort használsz? Az AN3 egyben a RA4/AN3/IOCA3/OSC2/CLKOUT láb. Ha az oszcillátor használja... ANSEL, ANSELH és TRISA be van állítva?
A hozzászólás módosítva: Ápr 29, 2013
(#) siemenstaurus válasza Hp41C hozzászólására (») Ápr 29, 2013 /
 
Oszcillátoron nem állítottam semmit, olyanhoz nem nyúltam tudomásom szerint.
ANSEL ANSELH az ADCON0-al állítottam, ott kértem melyik analógot szeretném használni.
Kicsit itt is utánaolvasva lehet P18F14K50nek ez kevés?
TRISA-n nem változtattam, órán azt mondták alapból bemenet mind ha kimentként szeretném 0-ba állítjuk.
Első tippem az volt, hogy az AN3on lévő bemenet OSC2-je zavar be valamit.
De ővele mit lehet kezdeni?
???
(#) icserny válasza siemenstaurus hozzászólására (») Ápr 30, 2013 /
 
Idézet:
„ANSEL ANSELH az ADCON0-al állítottam, ott kértem melyik analógot szeretném használni.”
Két különböző dologról van szó. ANSEL, ANSELH-val bitenként azt állítod, hogy melyik bemeneten legyen analóg módba állítva. Az ADCCON0 regiszter CHS0..CHS3 bitjeivel pedig azt állítod be, hogy a sok (lehetséges) analóg bemenet közül éppen melyik kapcsolódjon az ADC bemenetére.
(#) Hp41C válasza siemenstaurus hozzászólására (») Ápr 30, 2013 /
 
Szia!
Állítsd be az oszcillátort olyan módra, ami nem használja az OCS2 lábat: pl: Internal RC Oscillator. Ha ez nem felel meg más követelmények miatt, térj át másik lábra az analóg méréssel.
(#) siemenstaurus hozzászólása Máj 3, 2013 /
 
Szia!
TRISAbits.TRISA4 = 1; // az analógként használt láb bemenet
OSCCON = 0b11110110; //itt elméletileg bekapcsoltam az internal oscillatort
CONFIG1H = 0b01101000; //itt pedig a CLKOUT pin volna kiiktatva --->ehhez configolni kellett volna valamit?

Mindezeket az adatlap 18. és 259. oldaláról szedtem
A CLKOUT lesz a ludas szerintem. Ha cserélgetem a Cport kimeneteit mindig az AN3tól függő villog, ha pedig a konverzió eredményén változtatok akkor is bezavar.
Valamit nem jól csináltam mert nem tudja lefordítani sem. Bénázásomra mentségül szolgáljon hogy ilyet még nem csináltam.
(#) janimester hozzászólása Máj 4, 2013 /
 
Üdv. megint én volnék sikerült összeraknom a voltmérő fordulatszámmérő programot de a hőmérő amit szintén beletettem nem működik jól a programban méri a feszültséget de a proteus azt írja nincs csatlakoztatva az AN2-es lábra de attól ugyanúgy kiírja a valós hőfokot. Ha az ADCON és CMCON regiszterekkel variálok van hogy jólesz a program nem ír hibát de letilt és minden megy de a hőfokmérés abbamarad. Apropó 3 külön programot gyúrtam egybe külön működött a hőfokmérés ugyanezen picen de amint mellétettem a feszültségmérő programját a DVM voltmeter félét már nem akarta az igazságot biztos hogy a bemenetek és AD konfigurálásában van egy apró hiba amit nem tudok kijavítani.
  1. // LCD module connections
  2.  
  3. unsigned long RPM_Value;                                              //RPM
  4.  
  5. sbit LCD_RS at RC6_bit;
  6. sbit LCD_EN at RC7_bit;
  7. sbit LCD_D4 at RB4_bit;
  8. sbit LCD_D5 at RB5_bit;
  9. sbit LCD_D6 at RB6_bit;
  10. sbit LCD_D7 at RB7_bit;
  11. sbit LCD_RS_Direction at TRISC6_bit;
  12. sbit LCD_EN_Direction at TRISC7_bit;
  13. sbit LCD_D4_Direction at TRISB4_bit;
  14. sbit LCD_D5_Direction at TRISB5_bit;
  15. sbit LCD_D6_Direction at TRISB6_bit;
  16. sbit LCD_D7_Direction at TRISB7_bit;
  17.  
  18. const unsigned short TEMP_RESOLUTION = 12;
  19.  
  20. char *text = "000.0";
  21. unsigned temp;
  22.  
  23. char Message1[] = "AKKU:";
  24. unsigned int ADC_Value, DisplayVolt;
  25. char *volt = "00.0";
  26.  
  27. sbit IR_Tx at RA3_bit;                                                //RPM
  28. char message2[] = "FORDULAT";                                         //RPM
  29. char *RPM = "00000 RPM";                                              //RPM
  30.  
  31. void Display_Temperature(unsigned int temp2write) {
  32.   const unsigned short RES_SHIFT = TEMP_RESOLUTION - 8;
  33.   char temp_whole;
  34.   unsigned int temp_fraction;
  35.  
  36.   if (temp2write & 0x8000) {
  37.      text[0] = ' ';
  38.      temp2write = ~temp2write + 1;
  39.      }
  40.  
  41.   temp_whole = temp2write >> RES_SHIFT ;
  42.  
  43.   if (temp_whole/100)
  44.      text[0] = temp_whole/100  + 48;
  45.   else
  46.      text[0] = ' ';
  47.  
  48.   text[1] = (temp_whole/10)%10 + 48;             // Extract tens digit
  49.   text[2] =  temp_whole%10     + 48;             // Extract ones digit
  50.  
  51.   temp_fraction  = temp2write << (4-RES_SHIFT);
  52.   temp_fraction &= 0x000F;
  53.   temp_fraction *= 625;
  54.  
  55.   text[4] =  temp_fraction/1000    + 48;         // Extract thousands digit
  56.   Lcd_Out(2,14, text);
  57. }
  58.  
  59.  void Display_RPM(unsigned long num){                                //RPM
  60.   RPM[0] = num/10000 + 48;                                           //RPM
  61.   RPM[1] = (num/1000)%10 + 48;                                       //RPM
  62.   RPM[2] = (num/100)%10 + 48;                                        //RPM
  63.   RPM[3] = (num/10)%10 + 48;                                         //RPM
  64.   RPM[4] = num%10 + 48;                                              //RPM
  65.   Lcd_Out(3,12,RPM);                                                 //RPM
  66.  }
  67.  
  68. void main() {
  69.  
  70.   ADCON1 = 0x0F;                                                      //H
  71.   CMCON = 0b00000111;                                                 //H
  72.   LATB = 0x08;                                                        //H
  73.  
  74.  
  75.   ADRESL = 0b00000100; // RA2/AN2 is analog input                     // v
  76.   ADCON0 = 0b00001000; // Analog channel select @ AN2                 // o
  77.   ADCON1 = 0x00;   // Reference voltage is Vdd                        // l   ez miatt tilt le a hőmérés
  78.   CMCON = 0x07 ; // Disable comparators                               // t
  79.   TRISC = 0b00000000; // PORTC All Outputs                            // m
  80.   TRISA = 0b00001100; // PORTA All Outputs, Except RA3 and RA2        // é
  81.  
  82.   CMCON = 0x07;   // Disable comparators                              //RPM
  83.   ADCON1 = 0x0F;  // Disable Analog functions                       //RPM
  84.   TRISC = 0x00;                                                       //RPM
  85.   TRISB = 0x00;                                                       //RPM
  86.   PORTA = 0x00;                                                       //RPM
  87.   TRISA = 0b00010000;                                                 //RPM
  88.   T0CON = 0b01101000; // TMR0 as 16-bit counter                       //RPM
  89.  
  90.   Lcd_Init();                                                         //H
  91.   Lcd_Cmd(_LCD_CLEAR);                                                //H
  92.   Lcd_Cmd(_LCD_CURSOR_OFF);                                           //H
  93.   Lcd_out(1,1,"Simson Race Technic");                                 //H
  94.   Delay_ms(1000);                                                     //H
  95.   Lcd_out(2,7,"S80/5M");                                              //intro
  96.   Delay_ms(1000);                                                     //intro
  97.   Lcd_out(3,3,"by: Fekete Janos");                                    //intro
  98.   Delay_ms(1000);                                                     //intro
  99.   Lcd_out(4,1,"Computer inditasa...");                                //intro
  100.   Delay_ms(1000);                                                     //H
  101.   Lcd_Cmd(_LCD_CLEAR);                                                //H
  102.   Lcd_Out(2, 1,"HENGER:");                                            //H
  103.   Lcd_Chr(2,20,'C');                                                  //H
  104.   Lcd_Chr(2,19,223);                                                  //H
  105.   Lcd_Out(1,1,Message1);
  106.   Lcd_Chr(1,20,'V');                                                  //V
  107.   Lcd_Out(3,1,Message2);                                              //RPM
  108.  
  109.   do {
  110.    
  111.     Ow_Reset(&PORTA, 0);                         // Onewire reset signal
  112.     Delay_ms(20);
  113.     Ow_Write(&PORTA, 0, 0xCC);                   // Issue command SKIP_ROM
  114.     Delay_ms(10);
  115.     Ow_Write(&PORTA, 0, 0x44);                   // Issue command CONVERT_T
  116.     Delay_us(120);
  117.    
  118.     Ow_Reset(&PORTA, 0);
  119.     Delay_ms(20);
  120.     Ow_Write(&PORTA, 0, 0xCC);                   // Issue command SKIP_ROM
  121.     Delay_ms(20);
  122.     Ow_Write(&PORTA, 0, 0xBE);                   // Issue command READ_SCRATCHPAD
  123.     Delay_ms(20);
  124.    
  125.     temp =  Ow_Read(&PORTA, 0);
  126.     temp = (Ow_Read(&PORTA, 0) << 8) + temp;
  127.     Display_Temperature(temp);
  128.     Delay_ms(500);
  129.    
  130.     ADC_Value = ADC_Read(2);
  131.     DisplayVolt = ADC_Value * 2;
  132.     volt[0] = DisplayVolt/1000 + 48;
  133.     volt[1] = (DisplayVolt/100)%10 + 48;
  134.     volt[3] = (DisplayVolt/10)%10 + 48;
  135.     Lcd_Out(1,16,volt);
  136.     delay_ms(250);
  137.  
  138.    T0CON.TMR0ON = 1;
  139.    TMR0L = 0;
  140.    TMR0H = 0;
  141.    IR_Tx = 1;
  142.    Delay_ms(1000); // Wait for 1 sec
  143.    IR_Tx = 0;
  144.    T0CON.TMR0ON = 0;    // Stop the timer
  145.    RPM_Value = (256*TMR0H + TMR0L)*60;
  146.    Display_RPM(RPM_Value);
  147.  
  148.  
  149.   } while (1);
  150. }
A hozzászólás módosítva: Máj 4, 2013
(#) janimester válasza janimester hozzászólására (») Máj 4, 2013 /
 
Ja és 18F2550 a pic típusa. Fordulatszámmérő programja. Hőmérő programja. Voltmérő programja.
A hozzászólás módosítva: Máj 4, 2013
(#) zenetom hozzászólása Máj 4, 2013 /
 
Sziasztok!
12F675 GPIO láb megszakításnál írja az adatlap:
Idézet:
„If a change on the I/O pin should occur
when the read operation is being executed
(start of the Q2 cycle), then the GPIF interrupt
flag may not get set.”

Ez azt jelenti, hogy ha akkor történik élváltozás a lábon, mikor műveletet olvas ki a CU, nem történik megszakítás? De gondolom csak nem így van, mert ha ez így van, akkor nem lehet használni semmire.
(#) kissi válasza zenetom hozzászólására (») Máj 4, 2013 /
 
Szia!

Szerintem azt jelenti, amit írsz, de ez még nem zárja ki a használatot, csak az élnek tovább kell tartania, mint Q2 (1 órajelciklus ) !
(#) zenetom válasza kissi hozzászólására (») Máj 4, 2013 /
 
Igen, ez már valószínűbbnek tűnik.
(#) icserny válasza zenetom hozzászólására (») Máj 4, 2013 /
 
Idézet:
„ha akkor történik élváltozás a lábon, mikor műveletet olvas ki a CPU”
Nem "műveletet olvas ki", hanem "amikor éppen olvasás műveletet hajt végre". Gondolom, a port olvasásáról van szó, mert más olvasás aligha váltana ki ilyen hatást...

Ez magyarul azt jelenti, hogyha port megszakításra vársz, akkor ne olvasgasd a portot, mert az olvasás művelet törli a flag-et, s ez extrém esetben ahhoz vezet, hogy elvész egy megszakítás, a leírt körülmények esetén (kitörlöd a jelzőbitet, mielőtt észrevevődhetne...).
(#) zenetom válasza icserny hozzászólására (») Máj 5, 2013 /
 
Először én is erre gondoltam, mikor olvastam a pdf-et, de mondom ez elég rossz megoldás... Viszont akkor tényleg így van. Hát ez baj, mert egy másik bemenetet folyamatosan figyelek BTFSS-el, de az ugye beolvassa a teljes portot..
(#) anemo hozzászólása Máj 7, 2013 /
 
Sziasztok!

Egy kis idő után ismét lenne egy kérdésem, nem teljesen PIC-es probléma, de a PIC-es projekt része, amit korábban tárgyaltunk. Először is köszönöm Hp41C-nek az USB figyelést PIC18F4550-nél, a kételkedések ellenére a 10k és 2k7 verzió szépen működik.

PIC18F4550-nek akarok nyomógombok állapotát bevinni csomó 74HC166-tal, de egyáltalán nem akar működni. Valaki tudna segíteni, hogy hogyan kellene beolvasni az adatokat? Szimulátorban (Proteus) működik, de a valóságban teljesen mást csinál. Forrasztások jók, azt leellenőriztem ezerszer. Az angol leírást nem teljesen értem, de a szimulációban ezt csináltam: A PE (rajzon SH/LD) alapból magas, de az elsó órajel előtt pillanatra 0 lesz, majd vissza 5V. Ekkor elvileg bekerül az összes parallel a tárolókba. Órajel hatására végiglépkedek az összes biten (HC166 száma * 8-cal), ezt a PIC bemenetén olvasom be.

A valóságban a SHIFT OUT kimenet folyamatosan 0-t ad, nem értem, hogy miért... A mellékelt ábra szerint van most próbapanelon bekötve két nyomógomb.
Köszönöm előre is a segítséget!
A hozzászólás módosítva: Máj 7, 2013

hc166.jpg
    
(#) icserny válasza anemo hozzászólására (») Máj 7, 2013 /
 
Elég bolhaméretű rajzot raktál be. A CLR bemenet magas szinten van? Az impulzusokat (SH/LD, CLK) próbáld megnyújtani egy kicsit (1-2 NOP nem árt...). Kerüld el az RMW problémát (kimenetnél a LATx regiszter bitjeit billegtesd, ne a PORTx regiszterét)!
Következő: »»   405 / 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