[Microchip C18/30] Kas ir LATB?

M

MathGeek

Guest
Kas labs ir LATA, LATB, u.tml PORTA, PORTB?

Viņi, šķiet, turēt vērtības PORTA un B, utt, bet to, kas ir izmantot?Pievienots pēc 1 minūtes:Arī es sapratu mana 30F4011 simulācijas, kas MPLab, daži kā PORTB vērtība nekad izmaiņas, pat ja man uzrakstīt

PORTB = 0xFF;

Tikai datu aizbīdni pārmaiņas, ti, LATB kļūst 0xFF.

Kāpēc PORTB nemainās?

 
Hi!
Microchip datu lapu 18F452 datu lapu saka

Katrai ostai ir trīs reģistru darbību.Šīs
reģistri ir:
• TRIS reģistrs (datu virziens reģistrs)
• PORT reģistrs (skan līmeņu pins par
ierīce)
• LAT reģistrs (izejas slēdzeni)
Datu aizbīdni (LAT reģistrs) ir noderīgs lasāms modifywrite
darbību vērtību, I / O pins ir
vadītāja.

Tagad jautājums ir tas, kas ir lasāma modificēt rakstīt operācijas?

Šie ir tie operācijas, vispirms izlasiet ostas veikt nepieciešamās darbības (piem., UN, VAI), un pēc tam uzrakstiet atpakaļ ostā.

Jo 16FXXX sērijā nebija slēdzeni reģistrs, kas radīja problēmas, izmantojot lasīšanas modificēt rakstīt operācijas.Pieņemsim, ka jums konfigurēt jebkuras pin no ostas, kā produkciju un pēc tam izmanto šo pin vadīt LED.Tagad, ja LED izlietnes pārāk pašreizējais ir iespējams, ka volatage līmeni, kas pin kļūs mazāks par 2V.Jūsu kodu, ja jūs lasīt to pašu pin, lai pārbaudītu wheather LED ir ieslēgti vai OFF (1 vai 0), tas liecina, ka LED ir izslēgts (0 loģika).Iemesls tam ir tas, ka sprieguma līmeni, kas pin bija zem 2V, jo pārmērīga pašreizējo drenāžas.

No otras puses, kas 18FXX ierīces LAT reģistrs pieder vērtība, rakstiski PORT neatkarīgi no sprieguma līmeņa ostas kontakti.Faktiskais loģika līmenis ostas pins var izlasīt caur PORT reģistra.

Sveicieni.

 
Paldies par jūsu nice atbildi.

Es arī tikko sapratu, jaunu informāciju, es nezināju agrāk.

Man ir pazīstami ar 18.f sēriju.Ja es esmu pareizi, jo C18, rakstiski PORTB ir tieši tāds pats kā rakstveidā LATB.

Līdz ar to,

PORTBbits.RB3 = 1;

ir tāda pati kā

LATBbits.LATB3 = 1;

Tomēr, kā es tikko sapratu, šie divi darbības nav tāds pats 30F.Šī atklāsme noteikta mana problēma, ka man bija vairākas dienas.

PORTBbits.RB3 = 1; jo 30F padara PORTB = 0x08 neatkarīgi iepriekšējo vērtību.Citiem vārdiem sakot, tas atbrīvo visas citas bitiem bez RB3.

LATBbits.LATB3 = 1; tikai noteikts, ka īpaši bitu bez messing ar citiem adatas.Paldies.

 

Welcome to EDABoard.com

Sponsor

Back
Top