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   950 / 1203
(#) Bell hozzászólása Máj 14, 2017 /
 
HP41C:
Idézet:
„A 80. sorban miért szerepel a programból való megszakítás kérése?”

Csak a megszakítás működésének tesztelését szolgálta.
Időközben feltettem az MPLABX v3.61-et, azzal végre működik a kontrollerben az időzítés, a megszakítás is, a szimulátorban megáll a megszakításban elhelyezett töréspontnál, viszont a TMR0H-TMR0L nem számol.
Az időzítések messze nem a dokumentumoknak megfelelően alakulnak, de a lényeg az, hogy működik
zenetom:
Az csak a teszteléshez kellett.
Köszönöm az észrevételeket és a segítséget!
A hozzászólás módosítva: Máj 14, 2017
(#) zenetom válasza Bell hozzászólására (») Máj 14, 2017 /
 
Nálam is a v3.61 van fent, de nem működik. Azzal a kóddal, amit fent írtál, belép a megszakításba, úgy is, hogy kitörlöd a főprogramban a TMR0IF állítást?
(#) Birs Alma válasza Birs Alma hozzászólására (») Máj 14, 2017 /
 
Sajnos mégsem sikerült megoldanom az i2c.h problémát.

A lib könyvtárból bemásoltam a saját project könyvtárába az i2c.h fájlt, az MPLAB projectben a heder fájlokhoz hozzáadtam, és azóta a #include "i2c.h" -ra már nem jön "no such a file" üzenet, de sajnos amint bármilyen ...i2c() függvényt szeretnék használni, undefined symbol üzenetet kapok.

Ahogyan a csatolt képen látszik.

Mi lehet a megoldás?

i2chiba.tif
    
(#) Bell válasza zenetom hozzászólására (») Máj 14, 2017 /
 
TNR0IF=1- el lehet ki lehet kényszeríteni, de a TMR0 túlcsordulásnál nem áll meg.
Úgy tűnik ezzel nincs mit tenni, nagyon új még az eszköz.
Az időzítés sem a szimulátorban sem a kontrollerben nem működik korrektül.
Egyéb IDE-ről nincs tudomásom, ami ezt a kontrollert támogatja.
(#) zenetom válasza Bell hozzászólására (») Máj 14, 2017 /
 
Hát ha kézzel állítod a TMR0IF-et, annak nem sok értelme van.
Pont az lenne a lényeg, hogy a Timer0-ra bízod az időzítést, vagyis hogy lépteti a Fosc/4 a TMR regisztereket. Ha ez nem működik, akkor nincs értelme. Ha lesz rá időm, megpróbálom ASM-ben, de szerintem ott se fog menni.
De amúgy ez elég nagy gáz, ha tényleg nem megy.
(#) Bell válasza zenetom hozzászólására (») Máj 14, 2017 /
 
A 3.50- 3.60-al a TMR0IF-el sem állt meg a szimulátor töréspontjánál és nem futott a kontrollerben sem. Most fut, de nem azt csinálja, amit kellene. (Szerintem )
Jó lenne egy stabil verzió, amivel legalább játszani lehet.
Kicsit szokatlan még az MPLABX, új a kontroller és nem kizárt, hogy elnézek valamit.
Ezért próbálkoztam ezen a helyen végére járni a dolognak.
Kíváncsi vagyok az ASM eredményére, mert ott azért feketén- fehéren látszanak a dolgok.
(#) zenetom válasza Bell hozzászólására (») Máj 14, 2017 /
 
Ha van másik (régebbi) PIC-ed, próbáld meg azzal is.
(#) Bell válasza zenetom hozzászólására (») Máj 14, 2017 /
 
Az persze csont nélkül, hibátlanul megy. (PIC18F2321-el)
  1. /*
  2.  * File:   main.c
  3.  * Author: Bela
  4.  *
  5.  * Created on 2017. május 14., 17:34
  6.  */
  7.  
  8.  
  9. // CONFIG1H
  10. #pragma config OSC = INTIO2     // Oscillator (Internal oscillator block, port function on RA6 and RA7)
  11. #pragma config FCMEN = OFF      // Fail-Safe Clock Monitor Enable bit (Fail-Safe Clock Monitor disabled)
  12. #pragma config IESO = OFF       // Internal/External Oscillator Switchover bit (Oscillator Switchover mode disabled)
  13.  
  14. // CONFIG2L
  15. #pragma config PWRT = ON        // Power-up Timer Enable bit (PWRT enabled)
  16. #pragma config BOR = ON         // Brown-out Reset Enable bits (Brown-out Reset enabled in hardware only (SBOREN is disabled))
  17. #pragma config BORV = 3         // Brown-out Reset Voltage bits (Minimum Setting)
  18.  
  19. // CONFIG2H
  20. #pragma config WDT = OFF        // Watchdog Timer Enable bit (WDT disabled (control is placed on the SWDTEN bit))
  21. #pragma config WDTPS = 32768    // Watchdog Timer Postscale Select bits (1:32768)
  22.  
  23. // CONFIG3H
  24. #pragma config CCP2MX = RC1     // CCP2 MUX bit (CCP2 input/output is multiplexed with RC1)
  25. #pragma config PBADEN = DIG     // PORTB A/D Enable bit (PORTB<4:0> pins are configured as digital I/O on Reset)
  26. #pragma config LPT1OSC = OFF    // Low-Power Timer1 Oscillator Enable bit (Timer1 configured for higher power operation)
  27. #pragma config MCLRE = OFF      // MCLR Pin Enable bit (RE3 input pin enabled; MCLR disabled)
  28.  
  29. // CONFIG4L
  30. #pragma config STVREN = ON      // Stack Full/Underflow Reset Enable bit (Stack full/underflow will cause Reset)
  31. #pragma config LVP = OFF        // Single-Supply ICSP Enable bit (Single-Supply ICSP disabled)
  32. #pragma config BBSIZ = BB256    // Boot Block Size Select bits ( 256 Word)
  33. #pragma config XINST = OFF      // Extended Instruction Set Enable bit (Instruction set extension and Indexed Addressing mode disabled (Legacy mode))
  34.  
  35. // CONFIG5L
  36. #pragma config CP0 = OFF        // Code Protection bit (Block 0 not code-protected)
  37. #pragma config CP1 = OFF        // Code Protection bit (Block 1 not code-protected)
  38.  
  39. // CONFIG5H
  40. #pragma config CPB = OFF        // Boot Block Code Protection bitProtect Boot (Boot block not code-protected)
  41. #pragma config CPD = OFF        // Data EEPROM Code Protection bit (Data EEPROM not code-protected)
  42.  
  43. // CONFIG6L
  44. #pragma config WRT0 = OFF       // Write Protection bit (Block 0 not write-protected)
  45. #pragma config WRT1 = OFF       // Write Protection bit (Block 1 not write-protected)
  46.  
  47. // CONFIG6H
  48. #pragma config WRTC = OFF       // Configuration Register Write Protection bit (Configuration registers (300000-3000FFh) not write-protected)
  49. #pragma config WRTB = OFF       // Boot Block Write Protection bit (Boot block not write-protected)
  50. #pragma config WRTD = OFF       // Data EEPROM Write Protection bit (Data EEPROM not write-protected)
  51.  
  52. // CONFIG7L
  53. #pragma config EBTR0 = OFF      // Table Read Protection bit (Block 0 not protected  table reads executed in other blocks)
  54. #pragma config EBTR1 = OFF      // Table Read Protection bit (Block 1 not protected  table reads executed in other blocks)
  55.  
  56. // CONFIG7H
  57. #pragma config EBTRB = OFF      // Boot Block Table Read Protection bit (Boot block not protected  table reads executed in other blocks)
  58.  
  59.  
  60. #include <xc.h>
  61. #define _XTAL_FREQ 8000000
  62. void InitMCU(void);
  63. void Init_TMR0 (void);
  64.  
  65. void main(void) {
  66.     InitMCU();
  67.     Init_TMR0();
  68.     INTCONbits.GIE = 1;
  69.         INTCONbits.GIEL = 1;
  70.         INTCONbits.GIEH = 1;
  71.     INTCONbits.TMR0IF=1;
  72.     while(1)
  73.     {
  74.     }
  75. }
  76. void interrupt high_priority Int0(void) {
  77. if (TMR0IE && TMR0IF) {
  78.     TMR0L=0xF0;
  79.     TMR0H=0xF0;
  80.     TMR0IF=0;
  81. }
  82.  
  83. }
  84.  
  85. void InitMCU(void){
  86.         OSCCON=0b01110011;
  87.         ADCON1=0b11111111;
  88.         TRISA=0b11101111;
  89.         TRISB=0b00111111;
  90.         TRISC=0b00000000;
  91.         LATA=0; LATB=0; LATC=0;
  92. }
  93. void Init_TMR0 (void)
  94. {
  95.     T0CON=0b00000010;
  96.     TMR0L=0xF0;
  97.     TMR0H=0xF0;
  98.     INTCONbits.TMR0IE=1;        //bsf   INTCON,TMR0IE
  99.     INTCON2bits.TMR0IP=1;       //bsf   INTCON2,TMR0IP ;tmr0 magas prioriritású
  100.     RCONbits.IPEN=1;                    //bsf   RCON, IPEN
  101.     INTCONbits.PEIE=1;          //bsf   INTCON,PEIE
  102.     INTCONbits.TMR0IF=0;        //bcf   INTCON,TMR0IF
  103.     T0CONbits.TMR0ON=1;         //bsf   T0CON,TMR0ON
  104. }
(#) Hp41C válasza Bell hozzászólására (») Máj 14, 2017 /
 
T0CKI default pin: RA4: AN4
Idézet:
„15.0 I/O PORTS
....
Ports that support analog inputs have an associated
ANSELx register. When an ANSELx bit is set, the
digital input buffer associated with that bit is disabled.”


Idézet:
„17.1 PPS Inputs Each peripheral has a PPS register with which the inputs to the peripheral are selected. Inputs include the device pins. Multiple peripherals can operate the same source simultaneously. Port reads always return the pin level regardless of peripheral PPS ion. If a pin also has analog functions associated, the ANSEL bit for that pin must be cleared to enable the digital input buffer.”

  1. ANSELAbits.ANSELA4 = 0;
A hozzászólás módosítva: Máj 14, 2017
(#) Bell válasza Hp41C hozzászólására (») Máj 14, 2017 /
 
A CONFIG1L-ben a HFINTOSC_64MHZ-et használom 8 MHz-en, így nem baj, ha a külső oszci dolgait nem állítom be.
(#) zenetom válasza Bell hozzászólására (») Máj 14, 2017 /
 
Amúgy gyors kiszámolva (amit lehet elnéztem.. ) elvileg a T0 Int az ~0.015Hz-es! Tehát kb. 67 másodpercenként lépne csak be.. Kivártad a valóságban azt az időt? Bár ha a másik PIC-en működött..
A hozzászólás módosítva: Máj 14, 2017
(#) Bell válasza zenetom hozzászólására (») Máj 15, 2017 /
 
A kérdés életszerű
De ezekkel a paraméterekkel 5 perc alatt másodszor már nem áll meg.
(Úgy tűnik, hogy a szimulátorban elfelejtették léptetni a TMR0L - TMR0H-t, így persze nem lesz túlcsordulás, sem megszakítás)
  1. #define LOWBYTE(v)   ((unsigned char) (v))
  2. #define HIGHBYTE(v)  ((unsigned char) (((unsigned int) (v)) >> 8))
  3. #define _XTAL_FREQ  8000000
  4. #define time0 0xFFF7
  5. #define LED LATAbits.LATA0
  6. #include <xc.h>
  7.  
  8. void Init_TMR0 (void);
  9. void Init_Interrupt (void);
  10.  
  11. void main(void)
  12. {
  13.     OSCFRQ=0b00000011;  // 8MHz
  14.     TRISA =0xF0;
  15.     LATA=0x00;
  16.     ANSELAbits.ANSELA4 = 0;
  17.     Init_TMR0();
  18.     Init_Interrupt();
  19.     PIR0bits.TMR0IF=1;
  20.     while(1)
  21.     {
  22.     }
  23. }
  24.  
  25. void Init_TMR0 (void)
  26. {
  27.     PR0=0;
  28.     TMR0H = HIGHBYTE(time0);
  29.     TMR0L = LOWBYTE(time0);
  30.     PIE0bits.TMR0IE=1;
  31.     PIR0bits.TMR0IF=0;
  32.     IPR0bits.TMR0IP=1;
  33.     T0CON0bits.T016BIT=1; //16 bit
  34.     T0CON0bits.T0OUTPS=0b001; //post 1:2
  35.     T0CON1bits.T0CS=0b011; //HFINTOSC;
  36.     T0CON1bits.T0CKPS=0b0001; //pre 1:2
  37.     T0CON1bits.T0ASYNC=1;
  38.     T0CON0bits.T0EN=1;
  39. }
  40.  
  41. void Init_Interrupt (void)
  42. {
  43.     INTCONbits.GIEH=1;
  44.     INTCONbits.GIE=1;
  45.     INTCONbits.GIEL=1;
  46.     INTCONbits.IPEN=1;
  47. }
  48.  
  49. void interrupt high_priority TMR0h(void)
  50. {
  51.     if (PIR0bits.TMR0IF && PIE0bits.TMR0IE)
  52.     {
  53.     TMR0H = HIGHBYTE(time0);
  54.     TMR0L = LOWBYTE(time0);
  55.     LED=~LED;
  56.     PIR0bits.TMR0IF=0;
  57.     }
  58. }
(#) Hp41C válasza zenetom hozzászólására (») Máj 15, 2017 /
 
Próbálom az MpLab X 3.61 -el a 18F46K40 programot szimulálni. Beállítanám a konfigurációs regisztereket. Jó sok Gooogle segítséggel megtalálom hol is lehet. Be kell állítani egyesével lisboxokban majd generál egy beállító kódot. De nem tudja lefordítani amit generált. ( )

  1. // CONFIG1L
  2. #pragma config FEXTOSC = OFF    // External Oscillator mode Selection bits (Oscillator not enabled)
  3. //#pragma config RSTOSC = HFINTOSC_64MHZ// Power-up default value for COSC bits (HFINTOSC with HFFRQ = 64 MHz and CDIV = 1:1)
  4.  
  5. // CONFIG1H
  6. //#pragma config CLKOUTEN = OFF   // Clock Out Enable bit (CLKOUT function is disabled)
  7. #pragma config CSWEN = OFF      // Clock Switch Enable bit (The NOSC and NDIV bits cannot be changed by user software)
  8. #pragma config FCMEN = OFF      // Fail-Safe Clock Monitor Enable bit (Fail-Safe Clock Monitor disabled)
  9.  
  10. // CONFIG2L
  11. #pragma config MCLRE = EXTMCLR  // Master Clear Enable bit (If LVP = 0, MCLR pin is MCLR; If LVP = 1, RE3 pin function is MCLR )
  12. //#pragma config PWRTE = OFF      // Power-up Timer Enable bit (Power up timer disabled)
  13. //#pragma config LPBOREN = OFF    // Low-power BOR enable bit (ULPBOR disabled)
  14. #pragma config BOREN = SBORDIS  // Brown-out Reset Enable bits (Brown-out Reset enabled , SBOREN bit is ignored)
  15.  
  16. // CONFIG2H
  17. #pragma config BORV = VBOR_190  // Brown Out Reset Voltage ion bits (Brown-out Reset Voltage (VBOR) set to 1.90V)
  18. //#pragma config ZCD = OFF        // ZCD Disable bit (ZCD disabled. ZCD can be enabled by setting the ZCDSEN bit of ZCDCON)
  19. #pragma config PPS1WAY = OFF    // PPSLOCK bit One-Way Set Enable bit (PPSLOCK bit can be set and cleared repeatedly (subject to the unlock sequence))
  20. #pragma config STVREN = OFF     // Stack Full/Underflow Reset Enable bit (Stack full/underflow will not cause Reset)
  21. //#pragma config DEBUG = OFF      // Debugger Enable bit (Background debugger disabled)
  22. //#pragma config XINST = OFF      // Extended Instruction Set Enable bit (Extended Instruction Set and Indexed Addressing Mode disabled)
  23.  
  24. // CONFIG3L
  25. #pragma config WDTCPS = WDTCPS_31// WDT Period Select bits (Divider ratio 1:65536; software control of WDTPS)
  26. #pragma config WDTE = OFF       // WDT operating mode (WDT Disabled)
  27.  
  28. // CONFIG3H
  29. #pragma config WDTCWS = WDTCWS_7// WDT Window Select bits (window always open (100%); software control; keyed access not required)
  30. #pragma config WDTCCS = SC      // WDT input clock or (Software Control)
  31.  
  32. // CONFIG4L
  33. #pragma config WRT0 = OFF       // Write Protection Block 0 (Block 0 (000800-001FFFh) not write-protected)
  34. #pragma config WRT1 = OFF       // Write Protection Block 1 (Block 1 (002000-003FFFh) not write-protected)
  35. #pragma config WRT2 = OFF       // Write Protection Block 2 (Block 2 (004000-005FFFh) not write-protected)
  36. #pragma config WRT3 = OFF       // Write Protection Block 3 (Block 3 (006000-007FFFh) not write-protected)
  37.  
  38. // CONFIG4H
  39. #pragma config WRTC = OFF       // Configuration Register Write Protection bit (Configuration registers (300000-30000Bh) not write-protected)
  40. #pragma config WRTB = OFF       // Boot Block Write Protection bit (Boot Block (000000-0007FFh) not write-protected)
  41. #pragma config WRTD = OFF       // Data EEPROM Write Protection bit (Data EEPROM not write-protected)
  42. #pragma config SCANE = OFF      // Scanner Enable bit (Scanner module is NOT available for use, SCANMD bit is ignored)
  43. #pragma config LVP = OFF        // Low Voltage Programming Enable bit (HV on MCLR/VPP must be used for programming)
  44.  
  45. // CONFIG5L
  46. //#pragma config CP = OFF         // UserNVM Program Memory Code Protection bit (UserNVM code protection disabled)
  47. //#pragma config CPD = OFF        // DataNVM Memory Code Protection bit (DataNVM code protection disabled)
  48.  
  49. // CONFIG5H
  50.  
  51. // CONFIG6L
  52. #pragma config EBTR0 = OFF      // Table Read Protection Block 0 (Block 0 (000800-001FFFh) not protected  table reads executed in other blocks)
  53. #pragma config EBTR1 = OFF      // Table Read Protection Block 1 (Block 1 (002000-003FFFh) not protected  table reads executed in other blocks)
  54. #pragma config EBTR2 = OFF      // Table Read Protection Block 2 (Block 2 (004000-005FFFh) not protected  table reads executed in other blocks)
  55. #pragma config EBTR3 = OFF      // Table Read Protection Block 3 (Block 3 (006000-007FFFh) not protected  table reads executed in other blocks)
  56.  
  57. // CONFIG6H
  58. #pragma config EBTRB = OFF      // Boot Block Table Read Protection bit (Boot Block (000000-0007FFh) not protected  table reads executed in other blocks)
  59.  
  60. #include <xc.h>

Amelyiket hibásnak vélt, komment jelet kapott... 7 a 35 -ből. Egész jó arány, csak 20% hibás.
A hozzászólás módosítva: Máj 15, 2017
(#) zenetom válasza Hp41C hozzászólására (») Máj 15, 2017 /
 
Akkor gondolom Nálad se nőtt az MPLABX iránti elkötelezettség...
(#) sonajkniz válasza zenetom hozzászólására (») Máj 15, 2017 /
 
Lehet, hogy az MPLAB X-et direkt assemblyhez fejlesztették? Az egyéb programnyelveket pedig csak szőrmentén kezeli?
Ugyanis én még csak ezt a fordítót használtam, és csak assemblyben, de a fórumon eddig felhozott számtalan hiba egyikébe sem szaladtam még bele.
Főleg abba nem, hogy a saját maga álltal generált konfigurációs kódot nem fordította le.
(#) Hp41C válasza sonajkniz hozzászólására (») Máj 15, 2017 /
 
Mit csinálhattam rosszul?
A konfigurációs részt a 3. képen látható "Generate Source Code to Output" gombot megnyomva, az output ablakból a forrásba másolva csináltam. Az include <xc.h> sor lehet a config sorok előtt vagy után, a hibák maradnak...
(#) cross51 válasza Hp41C hozzászólására (») Máj 15, 2017 /
 
Milyen verzió számú XC8-ad van? Nálam v1.4-el fordul.
Lehet, ha a legújabb van az problémás nálam XC32-ből az 1.43-as nálam nem megy rendesen csak az 1.42-ig.
(#) zenetom válasza sonajkniz hozzászólására (») Máj 15, 2017 /
 
Szerintem egyszerűen csak trehányul csinálják a C fordítót (mondjuk a C18-al is voltak gondok..), illetve az MPLABX-re való áttéréssel rengeteg hibát vittek be.
Ez egy rossz döntés volt a Microchip részéről, amit sajnos el kell fogadni, mert tuti nem változtatnak ezen a vonalon. A baj csak az, hogy egyre csak gyűlnek- gyűlnek a bugok, és nem tudni meddig mennek el vele.
(#) sonajkniz válasza Hp41C hozzászólására (») Máj 15, 2017 /
 
Az a baj, hogy mivel neked C-re fordít, így az nekem tótul van.
Ugyanígy csinálom én is asm. alatt, de ott teljesen másképp néz ki a fordítás.
(#) cross51 válasza zenetom hozzászólására (») Máj 15, 2017 /
 
Én el kezdtem foglalkozni ARM-os MCU-kal is hát azok az IDE-k se kispályások... egyetlen szerencse ott, hogy ARM-ra van VisualGDB amivel a Visual Studio keresztül teljes native support van az MCU-ra programozás és debug szinten is.
Az a baj mindenki a Java felé megy és megpróbálják lenyomni az ember torkán az interpreteres f*st.
(#) cross51 válasza cross51 hozzászólására (») Máj 15, 2017 /
 
Már nem tudtam módosítani az 1.41-re gondoltam

De leszedtem az 1.42-őt is és azzal is hibátlan. Néztem MPLAB X v3.55 és v3.61 alatt mindkettővel egyikben se volt hiba nekem lefordult.
Ha esetleg nem probléma küld át a project fájlt megnézem.
(#) Hp41C válasza cross51 hozzászólására (») Máj 15, 2017 /
 
Ennél sokkal egyszerűbb a helyzet.
  1. XC8 V1.35             XC1.42
  2. nCP                   CP
  3. nCPD                   CPD
  4. HFINTOSC_64MHz     HFINTOSC_64MHZ
  5. ZCDEN                   ZCD
  6. nDEBUG                 DEBUG
  7. nXINST                 XINST
  8. nLPBOREN             LPBOREN

...
A hozzászólás módosítva: Máj 15, 2017
(#) Birs Alma hozzászólása Máj 15, 2017 /
 
Sziasztok,
Van valaki aki tudna segíteni abban, hogy miért nem fordul le az alábbi program?

:0: error: (499) undefined symbol: _OpenI2C(dist/default/production\i2c_teszt.X.production.obj) hibaüzenetet kapok.
A i2c.h fájlt a project könyvtárába másoltam, és hozzá adtam a projekthez.

MPLAB X IDE v3.61 környezetben XC8 (v1.42) -vel.


  1. #include "configbits.h"
  2. #include <xc.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. #define _XTAL_FREQ 20000000
  7. #define _FOSC 4000
  8.  
  9. #include "i2c.h"
  10.  
  11. int main(int argc, char** argv)
  12. {
  13.     while (1)
  14.     {
  15.         OpenI2C( MASTER, SLEW_OFF );
  16.     }
  17.  
  18. }
A hozzászólás módosítva: Máj 15, 2017

i2c_hiba.tif
    
(#) kriszrap válasza Hp41C hozzászólására (») Máj 15, 2017 /
 
Idézet:
„Elkezdtem nézegetni:
- Ahogy írták már mások is kitörlődött / megszökött egy sor. A pa deklarációja után kimaradt az értékadás. pa = & l[i][0];
- Milyen típusa is van a pa mutatónak? Olyannak kellene lennie, mint az l[][] tömb elemeinek. Azonban a int *pa; a deklarációja, az tömb pedig char l[6][26]; A char *pa; a jó megoldás.
/// Az int ebben a fordítóban 16 bites (2 byte - os), a char pedig 8 bites (1 byte - os). Az int típusra mutatóként deklarált változó a ++ műveletre 2 byte -tal megy arrébb a memóriában.

A Watch ablakba vedd fel a ps és a l változót és figyeld az értéküket.

A ledkockanagy_2 képen az is látszik, hogy a pa változó szépen ellépkedett az l[1][25] címére. Így nem használható az oszlopok() hívásában paraméternek. Az is látszik a ledkockanagy_3 képen, hogy az indexelés milyen műveleteket hajt végre ... CALL _Mul_16x16_U, 0 Nini egy szorzó rutin...”

Char volt tényleg a gond de a fényerö probléma ugyan úgy meg maratt.... Ötlet??
(#) Firefighter1 hozzászólása Máj 15, 2017 /
 
Sziasztok!

PIC el szeretnék jelgenerátort csinálni!
Azzal nincs is gond ha mondjuk 2-4-5 stb MHz jelet akarok létrehozni!
Mert azzal a frekivel behivok egy makrot! és a makroba megpenditem mindig a kimenetet!
De.... van mondjuk egy 4Mhz-PIC em ( vagy kristályom)
de én szeretnék mondjuk 160-170 MHz-es jelet generálni?!?!
Erre mi a megoldás? Olyan kristály kell hozzá? vagy tudok valami szorzót használni?
(#) cross51 válasza Birs Alma hozzászólására (») Máj 15, 2017 /
 
(emlékeim szerint már az XC8-ban alapból nincs benne a plib)
próbáld meg a Properties ->XC8 Linker Link in Peripherial Libary-vel
régen úgy emlékszem le lehetett még tölteni, de most nem találtam meg.
(#) pajti2 válasza Firefighter1 hozzászólására (») Máj 16, 2017 /
 
Olyan frekvenciával egy pic egyáltalán nem boldogul el. Valahol 10 környékén az elméleti lehetőségekből is kifutsz a jel összetettségének függvényében (pic32mz család 252 MHz-et tud asm szinten utasítás végrehajtási sebességnek, de abban talán még sram-ból futtatva is wait state-ek vannak, és az ugró utasítás 4 órajelet visz el per darab). 160-170-nél egy cpld / fpga kell neked. Mennyire lenne bonyolult szerkezetű a jel?
A hozzászólás módosítva: Máj 16, 2017
(#) Net_Boy_debr válasza Tasznka hozzászólására (») Máj 16, 2017 /
 
Szia Tanszka!

Bocsi a késői válaszért!
Azért választottam ezt a procit, mert a 16 Demo Board-ban ez van benne. Tanulásnak szerintem jó, ha tönkre megy, kidobom és veszek másikat.
Külső oszcillátort szeretnék használni, a Board-on 32kHz-es van gyárilag. A LED-ek is a gyári lábakon vannak RA0-RA7 között.
(#) Firefighter1 válasza pajti2 hozzászólására (») Máj 16, 2017 /
 
Igen erre gondoltam énis... hogy nem ez lessz az én megoldásom!
Amugy egy sima rf jel lenne! Foglalkoztat egy ideje az antennaanalizátor építése! Ahhoz gondoltam! De lehet hogy abszolute nem jo irányba keresgélek! Még sokat kell olvassak utánna!
(#) Firefighter1 válasza Firefighter1 hozzászólására (») Máj 16, 2017 /
 
Közben megtaláltam a saját topikját ugyhogy ezzel a kérdéssel költözök is oda!
Következő: »»   950 / 1203
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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