Sari la conținut
ELFORUM - Forumul electronistilor

Modificare cod C


cosmin17

Postări Recomandate

As vrea sa ma ajute si pe mine cineva care se pricepe la limbajul C, pentru a modifica un cod scris in acest limbaj.....codul face sa se aprinda un led pe pinul "b0", ceea ce doresc eu e sa mai adaug adaug 1-2 leduri pe alti pini, am incercat mai multe variante dar nu a functionat.#include <16F628.h>#use delay(clock=4M)void main(){while(1){ output_high(pin_b0); delay_ms(500); output_low(pin_b0); delay_ms(500);}}

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

Top autori în acest subiect

  • cosmin17

    2

  • A_L_E_X

    1

  • nooob64

    1

Nu stiu daca ar merge sau nu (depinde de functiile predefinite de compilator ,in mikroC e PORTB.F0=1 sau PORTB=0b00000001 pentru RB0 HIGH) , dar din cite vad eu output_high(pin_b0) si output_low(pin_b0) iti aprinde/stinge un led pe pinul RB0 cel mai simplu incearca sa modifici parametrul functiei output_high/low (pin_b0) cu pin_b1 ...7 , cel mai bine studiezi help'ul compilatorului .

Link spre comentariu

Tebuie sa functioneze daca scrii asa : #include <16F628.h>#use delay(clock=4M)void main(){while(1){output_high(pin_b0);delay_ms(500);output_low(pin_b0);delay_ms(500);output_high(pin_b1);delay_ms(500);output_low(pin_b1);delay_ms(500);}}In acest caz am aprins si am stins ledul de pe pinul B1. Poti sa aprinzi si sa stingi orice led vrei. Nu-ti merge doar daca pinul folosit este open-drain. In acest caz trebuie sa introduci o rezistenta de 4,7 k in serie. Uita-te in datasheet daca pinul folosit este open-drain sau nu. Ce nu a mers mai exact ? Nu a compilat programul sau nu se aprind ledurile ?

Link spre comentariu
Vizitator thenoble66

Nu-ti merge doar daca pinul folosit este open-drain. In acest caz trebuie sa introduci o rezistenta de 4,7 k in serie.

Nu e chiar asa.Pinii porturilor unui PIC pot actiona direct (printr-o rezistenta de R=330-470Ohmi) un LED.Sunt doua cazuri:1. Anod LED conectat la Vdd, catod LED conectat prin R la pin (sa zicem B0). Aprinderea LED-ului in acest caz se obtine prin nivel L pe B0, iar stingerea prin nivel H pe B0.2. Anod LED conectat la pin (B0!), catod LED conectat prin R la GND. Aprinderea LED-ului in acest caz se obtine prin nivel H, iar stingerea prin nivel L pe B0.Daca nimeresti un pin OpenDrain (la 16F628A doar PORTA.4), abia atunci esti nevoit sa recurgi la cazul 1. descris mai inainte.Ce compilator folosesti?thenoble66
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