Fórum témák
- • Központi fűtés (vezérlés)
- • Elektromos távirányítós kapunyitó
- • Audiofil, High End Audio
- • Videomagnó problémák
- • Alternativ HE találkozó(k)
- • Műhelyünk felszerelése, szerszámai
- • Borhűtő vezérlő panel
- • Kombikazán működési hiba
- • Számítógép hiba, de mi a probléma?
- • Szünetmentes táp javítása, élesztése
- • Hűtőgép probléma
- • Súlymérés
- • Videoton EA-7386-s erösítő
- • Analóg oszcilloszkóp javítása
- • Erősítő mindig és mindig
- • Digitális mérleg
- • Kapcsolási rajzot keresek
- • IMI villanymotor
- • TV hiba, mi a megoldás?
- • Felajánlás, azaz ingyen elvihető
- • Triak és tirisztor helyettesítése
- • Rádióamatőrök topikja
- • Hangszórójavítás (otthon)
- • LED-es világítás
- • Whirlpool mosógép
- • Vásárlás, hol kapható?
- • Autóelektronika
- • Hangváltók (készítése)
- • Kondenzátor
- • Függvénygenerátor építése
- • Vicces - mókás történetek
- • Klíma beszerelése, fűtés-hűtés házilag
- • Dobozolási technikák, műszerdobozok
- • Forrasztópákák - melyik miért jó
- • CPLD, FPGA - Miértek, hogyanok
- • Eredményjelző
- • Klíma szervizelés, javítás
- • V-FET és SIT erősítő kapcsolások
- • Érdekességek
- • Elfogadnám, ha ingyen elvihető
- • Autós erősítős kérdések, problémák
- • Padlófűtés vezérlés
- • Li-Ion saját akkucsomag készítése
- • Tranzisztor teszter
- • Elektromos kerékpár, robogó házilag
- • Arduino
- • TDA7294 végerősítő
- • 3D nyomtatás
- • Alaplap kérdések
- • TDA7293 végerősítő
- • Tranzisztorok helyettesítése
- • GPS GSM modulok programozása
- • Kazettás magnó (deck) javítása
- • JLT-02 analóg forrasztóállomás
- • Fejhallgató erősítő
» Több friss téma
|
- 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.
Sziasztok!
Van egy Pic12F629 hozzá a hex file(ilyen hó esést imitáló),egy nyomógombbal állítható milyen formában fussanak a led fények. Van benne vagy 20 program.Nekem csak vagy 4 tetszik belőle,hogyan tudnám megcsinálni hogy csak az a 4 maradjon? A többit kitörölni? Megnyitni meg nyitottam egy (Hex Editor-ral) de nem tudom melyikeket kéne törölni,vagy nem ilyen egyszerű?
Válaszokat köszönöm!
Ettől jóval összetettebb a feladat. Az eredeti forráskód nincs meg?
Ez nem a forrásfájl, csak az abból készült hex. Anélkül enyhén szólva is igen nehéz dolgot kérsz, ráadásul nem sok fórumozó tudja véghezvinni a feladatot.
Ha megépítetted a hardvert, és működik mind a húsz effekt, add meg a sorszámát azoknak, amelyek kellenek. 5 percem van rá, garancia nélkül.
Szerintem 15 körül van a programok száma. A hozzászólás módosítva: Jan 4, 2021
Megépítettem még karácsonykor.Most meg néztem vagy tízszer(szerintem neked van igazad-csak mire végig mentem rajta,hogy melyik tetszik és melyik nem már nem bírtam követni) úgy néz ki tényleg 15 van. 1-3-8-11-14-15 annyira nem sürgős,majd ha ráérsz.
Előre is köszönöm!
Én azt hittem ez a forrásfájl.Akkor a készült hex,böl kivehető e az amit szeretnék?. Nyilván nekem nem ,mivel nem értek hozzá. Ha egyáltalán megoldható ez ,nem tudom mennyi időbe telhet mivel nem vágom.Azért köszönöm!
Bár a nikked miatt nem érdemled meg, a következő módosításokat csináld meg:
4e: 2861
4F: 286B
50: 286F
51: 2845
52: 2845
A programot nem értelmeztem, a címek, és adatok a PICKIT szerkesztőjével értlmezendők, 16bit módban. A többi program definiálatlan.
Hát ez most már így marad sajna (mármint a nikk-anno próbáltam egy párat és foglalt volt aztán ezt elfogadta,nem a kedvencem és karót sem használtam ,na de most ez nem ide tartozik.
Meg próbálok boldogulni azzal amit küldtél! Köszönöm!
Jó szerencsét! Valószínűleg a hiányos mikrokontrolleres tudásom miatt teszem fel a kérdést, de szeretnék többet tudni. MikroE EasyPIC6-oshoz vásároltam egy mp3 lejátszót, amin van SD-kártya olvasó is. Ezt a kártyát lehet-e használni mérsésadatgyűjtésre, pl. analóg jelek értékének tárolására, vízóraállások rögzítésére. Köszönöm a válaszokat, Joe.000000 A hozzászólás módosítva: Jan 5, 2021
Ha az egy MP3 lejátszó, akkor nagy valószínűséggel nem, a típus nem derült ki. Adatrögzítéshez ezt keresd: OpenLog.
OK!
Akkor a kérdést/kérést átfogalmazom....
Van valakinek egy MŰKÖDŐ i2c projectje az mplab-x 5.35 generál i2c-t használja amit hajlandó megosztani? Nem tudom melyik libet cseréljem a régire (és hogy melyikre) hogy visszakapjam ami egyszer már működött. (túl van bonyolítva és bevallottan nincs dokumentálva az új i2c)
Bár a legjobb megoldás az lenne ha az aktuálisat tudnám használni, de erről lassan már leteszek...
Bármilyen i2c programocska érdekel legyen az hőmárő eprom rtc akármi ..... A hozzászólás módosítva: Jan 6, 2021
Nos hosszú debugolás után (egyszer véletlen elindult, mosmár biztos hogy az mcc által generált kód a hunyó) odáig értem hogy az i2c bezárásával van a bibi.
i2c1_error_t I2C1_Close(void)
{
i2c1_error_t returnValue = I2C1_BUSY;
if(!I2C1_Status.busy)
{
I2C1_Status.inUse = 0;
I2C1_Status.address = 0xff;
I2C1_MasterClearIrq();
I2C1_MasterDisableIrq();
I2C1_MasterClose();
returnValue = I2C1_Status.error;
}
return returnValue;
}
az i2c_simple_example.c itt keveredik végtelen ciklusba...
Valaki találkozott már a jelenséggel?
Hali!
Miért kínlódsz az MCC-vel, ami valaki elfajzott agyszüleményét generálja le neked? Szerintem még egy alap port beállításokat is túlbonyolít. Úgy látom ebben a PIC-ben MSSP van és megegyezik bármelyik másik PIC-ben lévő MSSP-vel. Írd meg magad az adatlap alapján, vagy keress a neten. Tuti van kismillió találat rá.
Tipp: Tegyél megszakításba LED bekapcsolást I2C Buszhibára. Akkor látod, hogy ott van a gond, vagy a program téved el.
Ez valóban igéretes, de most épp a PLIB és az MCC-XC8 összeházasításával küzdök.....
Szia!
Ezeket a módosításokat milyen programban csináljam? Köszönöm!
Visszakérdezek: Milyen programozóval, milyen programmal égetsz?
Pickit2 és a Pickit2 Programmal.
Miért kínlódsz napokat azzal a "driverrel"? Elkészíteni a sajátot nem töltene ki egy délutánt sem...
Csak mintának...
PIC18F2550 -re készült XC8 -cal (de a régebbi változattal) 24FC512 -vel működött:
/******************************************************************************
* Function: void I2CReadBytes(unsigned char SlaveAddress, unsigned char WordAddress, unsigned char NumberOfBytes)
*
* Overview: Reads NumberOfBytes bytes from slave with address SlaveAddress starting from WordAddress
*
* PreCondition: None
*
* Input: None
*
* Output: None
*
* Side Effects: Aborts if no ACK
*
* Note: Does nothing if Flags2.I2CBusError
*****************************************************************************/
void I2CReadBytes(unsigned char SlaveAddress, unsigned char WordAddress, unsigned char NumberOfBytes)
{
unsigned char num = 0;
if (!Flags2.I2CBusError)
{
// Send start bit
SSPCON2bits.SEN = 1;
while (SSPCON2bits.SEN); //wait for start
// Send I2C Control Code
PIR1bits.SSPIF = 0;
SSPBUF = SlaveAddress & 0xFE;
// wait for it to transmit
while (!PIR1bits.SSPIF);
if (SSPCON2bits.ACKSTAT)
{ // no acknowledge - abort
goto I2CReadBytesAborted; //abort
};
// Send I2C Control Code
PIR1bits.SSPIF = 0;
SSPBUF = WordAddress;
// wait for it to transmit
while (!PIR1bits.SSPIF);
if (SSPCON2bits.ACKSTAT)
{ // no acknowledge - abort
goto I2CReadBytesAborted; //abort
};
// Send Restart
SSPCON2bits.RSEN = 1;
while (SSPCON2bits.RSEN); //wait for restart
// Send I2C Address Read
PIR1bits.SSPIF = 0;
SSPBUF = SlaveAddress | 0x01;
// wait for it to transmit
while (!PIR1bits.SSPIF);
if (SSPCON2bits.ACKSTAT)
{ // no acknowledge - abort
goto I2CReadBytesAborted; //abort
};
do
{
PIR1bits.SSPIF = 0;
SSPCON2bits.RCEN = 1; // start byte reception
while (!PIR1bits.SSPIF); // wait for byte to come in.
I2CBuffer[num++] = SSPBUF; //read byte into USB buffer
if (num == NumberOfBytes) // last byte
SSPCON2bits.ACKDT = 1; // NACK last byte
else
SSPCON2bits.ACKDT = 0; // ACK
SSPCON2bits.ACKEN = 1; // acknowledge sequence
while(SSPCON2bits.ACKEN); // wait for end ack sequence
} while (num < NumberOfBytes);
I2CReadBytesAborted:
SSPCON2bits.PEN = 1; //send stop
while (SSPCON2bits.PEN); //wait for stop
}
else
{
ClearI2CBuffer();
}
}
/******************************************************************************
* Function: void I2CWriteBytes(unsigned char SlaveAddress, unsigned char WordAddress, unsigned char NumberOfBytes)
*
* Overview: Writess NumberOfBytes bytes to slave with address SlaveAddress starting from WordAddress
*
* PreCondition: I2CBuffer[] filled with data
*
* Input: None
*
* Output: None
*
* Side Effects: Aborts if no ACK
*
* Note: Does nothing if Flags2.I2CBusError
*****************************************************************************/
void I2CWriteBytes(unsigned char SlaveAddress, unsigned char WordAddress, unsigned char NumberOfBytes)
{
unsigned char num = 0;
if (!Flags2.I2CBusError)
{
// Send start bit
SSPCON2bits.SEN = 1;
while (SSPCON2bits.SEN); //wait for start
// Send I2C Control Code
PIR1bits.SSPIF = 0;
SSPBUF = SlaveAddress & 0xFE;
// wait for it to transmit
while (!PIR1bits.SSPIF);
if (SSPCON2bits.ACKSTAT)
{ // no acknowledge - abort
goto I2CWriteBytesAborted; //abort
};
// Send I2C Control Code
PIR1bits.SSPIF = 0;
SSPBUF = WordAddress;
// wait for it to transmit
while (!PIR1bits.SSPIF);
if (SSPCON2bits.ACKSTAT)
{ // no acknowledge - abort
goto I2CWriteBytesAborted; //abort
};
do
{
PIR1bits.SSPIF = 0;
SSPBUF = I2CBuffer[num++];
// wait for it to transmit
while (!PIR1bits.SSPIF);
if (SSPCON2bits.ACKSTAT)
{ // no acknowledge - abort
goto I2CWriteBytesAborted; //abort
}
} while (num < NumberOfBytes);
I2CWriteBytesAborted:
SSPCON2bits.PEN = 1; //send stop
while (SSPCON2bits.PEN); //wait for stop
};
}
Komment: A Flags2.I2CBusError akkor 1, ha inicializáláskor a SCL és SDA vonalak szintje nem magas. A hozzászólás módosítva: Jan 8, 2021
Ezekkel meg lehet oldani.
Betöltöd az eredeti .hex fájlt átírod ezeket a címeket, és beégeted. Ha elmented, másik névre mentsd!
Köszönöm! A táblázatban nem is találok ilyen címeket :
4e: 2861
4F: 286B
50: 286F
51: 2845
52: 2845 vagy rossz helyen keresem?
Nézzük a kijelölt sort: 050
050: 2863
051: 2865
052: 2867
053: 2869
054: 286B
055: 286D
056: 286F
057: 2871
058: 2873 (ez már a következő sorban van)
059: 2845
05A: 2845
05B: 2845
05C: 2845
05D: 2135
05E: 2874
05F: 213D
060: 2874 (ez is a következő sorban van)
Stb.
Köszönöm!
Kezdem kapiskálni,jobbra haladva megyünk sorba. A 4e illetve 4F -et azt merre keressem? Ahol bejelöltem? Meg a mellette lévő jobbra?
Nem, a felső mezőben görgess lejjebb. A képeden az EEPROM terület van kijelölve.
Nem találok olyat, a 4e az lehet 04E ? mer olyan van. A 4F-et sem találom csak 04F-et.
Igen, az az. Mindegy, hogy egy szám elé, illetve tizedes mögéé hány nullát írunk, az érték nem változik.
00000004,5600000 = 4,56
Rendben, köszöntem! Át írom ezeket. Kíváncsi leszek, majd jelzem.
|
|