Sari la conținut
ELFORUM - Forumul electronistilor

Pic + NRF24L01, cod in mikroC


Drk_alien

Postări Recomandate

Salutare,

Nu am postat de mult aici fiind ocupat cu alte treburi, ma bucur sa va regasesc si iata problema mea:

Doresc sa imi fac un avion cu telecomanda iar pt transmiter si receiver am decis sa folosesc module NRF24L01. 

In mikroC Pro exista deja o librarie care este special facuta pt acest modul dar eu m-am blocat la configurarea pinilor deoarece exemplul este pt un alt tip de Pic.

Eu voi folosi un Pic18F2580 atat pt transmiter cat si pt receiver.

Partea de cod pe care eu nu o inteleg si la care primesc eroare de compilare este aceasta: ( Syntax Error: 'b' expected,  but 'C5' found )

Eroarea o primesc atunci cand vreau sa inlocuiesc LATC.B7 de pe linia 2 cu LATC.C5 si TRISC.B7 cu TRISC.C5

M-as bucura daca cineva m-ar ajuta cu o explicatie.

sbit Irq_pin   at PORTB.B0; sfr;sbit Mosi_pin  at LATC.B7;  sfr;sbit Ce_pin    at LATA.B4;  sfr;sbit Sclk_pin  at LATA.B3;  sfr;sbit Csn_pin   at LATA.B2;  sfr;sbit Miso_pin  at PORTC.B6; sfr;sbit Irq_tris  at TRISB.B0; sfr;sbit Mosi_tris at TRISC.B7; sfr;sbit Ce_tris   at TRISA.B4; sfr;sbit Sclk_tris at TRISA.B3; sfr;sbit Csn_tris  at TRISA.B2; sfr;sbit Miso_tris at TRISC.B6; sfr;

Ce nu inteleg eu aici este, sa luam de ex linia 2 in care Mosi e configurat cumva in registrul LATC.B7. Asta ce inseamna? B7 de unde vine?...nu ar trebuii sa fie un 'C' ? Trebuie neparat sa ma folosesc de registrul LATC, LATA...etc?

Pt Pic18f2580 am decis sa folosesc pinii asa:

 

RC2 - CE (NRF24L01)

RC1 - CSN (NRF24L01)

RC3 - SCLK (NRF24L01)

RC5 - MOSI (NRF24L01)

RB2 - IRQ (NRF24L01)

RC4 - MISO (NRF24L01)

 

Si de aceea am nevoie sa schimb aceste setari.

 

Sper ca am fost destul de explicit.

Multumesc mult.

 

 

Link spre comentariu
  • Răspunsuri 6
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • Drk_alien

    3

  • Mircea

    2

  • one

    1

Zile populare

Top autori în acest subiect

LATB.B0 adica Port B, bit 0. LATC.C0 nu exista pentru ca dupa LATX (X e portul A, B, C...) vine mereu un B.Y (Y = 0 la 7 dupa cati pini ai port).

 

Ai grija cu NRF-ul la avioane, iti trebuie un modul puternic daca vrei sa controlezi avionul departe. Nicidecum modulele de pe eBay la 1-2$.

Si, da, la PIC 18 ai mereu LATX, nu PORTX.

PS: nu am verificat daca exemplul foloseste SPI hard sau soft. Daca e soft, nu conteaza pinii, daca e hard atunci nu va merge decat cu pinii dedicati conectati.

Chiar daca programul va compila corect.

Link spre comentariu

Am reusit sa compilez cu success, mersi de informatie.

Stiu ca nu sunt module puternice dar eu fac asta din pasiune si orice success ma va entuziasma. Eu sunt programator PHP de meserie. Nu prea ma am cu electronica dar sunt ok la programare in C, pornind din scoala cu programarea in C++.

 

Maine am sa fac niste teste sa vad daca se trimit niste date.

Eventual o sa revin cu niste intrebari.

Link spre comentariu

Mai toti suntem din entuziasm pe aici. Spor la treaba.Ar fi interesant ce protocol (codare) folosesti ca sa transmiti semnalul RC la avion.Faci o comunicatie in ambele sensuri sau doar catre avion?Intreb si eu sa vad ce idei mai au ceilalti.PS: Eu ma joc cu barcute.

Editat de thunderer
Link spre comentariu

Aseara mi-am comandat NRF cu antena externa de pe ebay pt un range mai mare. ( folosesc dinalea fara amplificare momentan )

Vor ajunge in cam 1 luna, deci o sa am destul timp sa ma folosesc de astea mai slabute pentru development.

Ideea e ca la un moment dat sa ii montez o camera ( nu stiu inca cum si de ce probleme ma pot lovi ) dar asta am in plan.

Am si un modul giroscop, o sa vad cum ma pot juca cu el mai tarziu ca avionul sa nu depinda in totalitate de telecomanda si de indemanarea mea.

 

Nu am incercat Zigbee, defapt eu nu am mai incercat comunicarea radio intre microcontrollere. :rade: Am facut tot felul de chestii cu dispay Nokia 3310 + tastatura PS2...dar in principiu chestii simple.

Link spre comentariu
  • 8 luni mai târziu...
Vizitator bufferzone

Salut Drk_alien,

Ai reusit cumva sa comunici folosind exemplul de mai sus? Eu incerc sa folosesc un PIC18F45K22 si un Arduino Mega si nu reusesc sa citesc nimic in Arduino. Daca cineva are un exemplu pe care l-a folosit cu succes in trimiterea datelor intre PIC si Arduino ve rog mult ajutat-ma si pe mine cu exemplu. Am incercat o multime de exemple existente pe internet insa nu reusesc sa trimit si sa primesc nimic. Folosesc 2 NRF-uri cu antena externa pe care le alimentez de la o sursa de calculator, am pus intre masa si + un condensator de 100nF si tot nimic. Nu stiu ce sa mai incerc sa reusesc sa transmit cativa biti catre arduino.

Multumesc mult pentru ajutor!

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări