Sari la conținut
ELFORUM - Forumul electronistilor

Probleme de incepatori


Postări Recomandate

Un exemplu de pornire: in ideea ca se foloseste un cuartz de 16MHz, seteaza timer1 pt a obtine o frecventa de 4Hz. Valorile le poti modifica in functie de frecventa dorita, cat timp se incadreaza in datasheet; eu am facut copy dintr-un loc unde l-am folosit, nu il mai recalculez pt 1Hz.

 

// Atmega88/168void init(void){  // TIMER1 init  // running on 16MHz; use timer1, prescaler 256, compare with 15625  // in order to get a frequency of 4Hz  (four calls per second)  // TCCR1A: no compare pins, no waveform generation; leave it default (to zero)  // TCCR1A = 0;  // TCCR1B:  // WGM12: CTC - clear timer on compare match (OCR1A)  // prescaler 256: CS12=1 CS11=0 CS10=0  TCCR1B = (1<<WGM12)|(1<<CS12);  // compareA value  OCR1A = 15625; // 0x3D09  // timer1 output compare A (match) interrupt enable  TIMSK1 = (1<<OCIE1A);  // set timer1 counter initial value (not required, default 0)  // TCNT1=0x00;  // enable interrupts  sei();}uint8_t timer_quarters = 4; // count quarters of secondsuint8_t second_elapsed;// rutina de tratare a intreruperiiISR(TIMER1_COMPA_vect){  if (!(--timer_quarters)) {   ///  A TRECUT O SECUNDA!  FA CEVA!    second_elapsed = 1; // exemplu    timer_quarters = 4; // reset counter  }}void main(void){  init();  for(;;) {    if (second_elapsed) {       second_elapsed = 0; // reset it       //  FA CEVA!    }  }}

Pentru un exemplu cu afisaje cu 7 segmente, poti sa te uiti peste "Multi-voltmetru cu Atmega8 si afisaj 7 segmente" de pe aici. Nu mai dau linku, ca mi-e lene.

Daca sunt intrebari concrete, raspund cu cea mai mare placere.

Link spre comentariu

mai precis, când căutam zilele trecute în "cutia cu maimuţe" în căutare de socluri sacrificabile pentru breadboardul ăla, am găsit un afişaj "de ceas" multiplexat fabricat de răposata microelectronica acum 15-20 de ani în urmă... şi m-am gândit să-l folosesc la ceva.şi cum este bun, aduna praful, este pentru ceas, şi celebrele 351 nu se mai fabrică demult :jytuiyu ...

Link spre comentariu

Am si eu un afisaj de genul acela, verde, luat cu ganduri marete prin copilarie ... sau cand. Nefolosit. Ma gandeam si eu sa il infig pe o placa cu un mcu, dar ... inca nu i-a venit ceasul.Hmmm. Amu ca mi-ai adus aminte de el ... parca-parca i-as face ceva. Ca m-am cam saturat de proiectul la care lucrez acum, si mi-ar prinde bine o relaxare.No dara. Nu promit nimic, dar ... sunt ceva sanse...

Link spre comentariu

io voiam surse, ca să mă prind şi cum se scrie corect un soft pentru aşa ceva...de-aia nu mă interesa prea tare limbajul, mă interesa să fie comentat la greu...din momentul în care te-ai prins care e principiul de bază, poţi să rescrii softul ăla şi în .net dacă te doare mintea, şi îl cunoşti bine...P.S. afişorul meu e roşu, şi mi se pare că e CC... nu mai ştiu bine dacă e în format 12 sau 24 de ore... aflu eu mai pe seară, că acum trebuie să mă cam plimb...

Link spre comentariu

ma puteti ajuta cu sfaturi?

Da, pune mana si citeste niste notiuni de baza: ce e ala Volt si ce e ala Amper. Altfel chiar nu stiu ce poti sa faci cu microcontrollerele ...(Hint: primul a fost italian, al doilea francez)Pentru cazul tau particular, sa nu zici ca nu primesti raspuns: poti folosi linistit acumulatorii respectivi, capacitatea lor (Ah) nu "arde" nimic. Doar tensiunea de lucru sa nu o depasesti.
Link spre comentariu

pai si bateria de la masina are 12V (14.5) si min 50Ah, oare cum de nu se ard becurile de 20W ?cand nu stiu raspunsul la o intrebare incerc s-o iau prin de deductie logica, daca logica nu ma ajuta apelez la cunsostintele acumulate de internet, abia la final apelez la forum.alt ex: daca la un aparat foto ai 3 acumulatori AAA de 1.2V/buc si 1600mAh si ii inlocuiesti cu alti 3 acumulator de 1.2V/buc la 3000mAh ce crezi ca se intampla ?p.s: si totusi sa pui un zener de 5 ... 5.2V pe alimentarea uC-ului, nu se stie ce se poate intampla din neatentie

Link spre comentariu

MifTy totusi puteai atasa si un soft la placa de "joaca"....(daca aveai,daca nu,scuze)...pt uni ca mine le este greu sa faca programe(deocamdata este primul an de programare si nu prea stiu toate comenzile :cry: )chear as accepta si as fi recunoscator dak cnv m-ar putea sjuta sa inteleg mai bine...

Link spre comentariu

intrebarea asta am pus-o doar sa ma asigur. :jytuiyu ..si eu stiam k un consumator "mananca" doar cat are nevoie....cnv tot imi zicea k o sa-l ard si am zis sa intreb totusi....ms mult de raspunssi notiunile de baza le am stai linistit .....nu cred k strica sa intreb totusi

Link spre comentariu

uf, un search pe google găseşte zeci de exemple...

uite un exemplu în c:

 

#define F_CPU 8000000UL#include <avr/io.h>#include <util/delay.h>int main(void) {    DDRB |= 1<<PB0; /* set PB0 to output */    while(1) {        PORTB &= ~(1<<PB0); /* LED on */        _delay_ms(100);        PORTB |= 1<<PB0; /* LED off */        _delay_ms(900);    }    return 0;}

sau aşa:

 

#include <avr/io.h>#include <util/delay.h>int main(void){    DDRD = (1 << 4);           /* make the LED pin an output */   for(;;){        char i;        for(i = 0; i < 50; i++){            _delay_ms(20);  /* max is 262.14 ms / F_CPU in MHz */        }        PORTD ^= (1 << 4);    /* toggle the LED */    }    return 0;               /* never reached */}

vezi şi tu, pentru bascom, alte alea...

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