Jump to content


Photo

Probleme de incepatori


  • Please log in to reply
822 replies to this topic

#1 OFFLINE   ole

ole

    Membru

  • Membri
  • PipPip
  • 341 posts

Posted 09 December 2009 - 01:15 AM

Aici intrebati ce nu intelegeti, puneti secvente de cod cu incercarile voastre si cei mai experimentati va ajuta.

Cu_reclama

Cu_reclama
  • Membri

#2 OFFLINE   ole

ole

    Membru

  • Membri
  • PipPip
  • 341 posts

Posted 14 December 2009 - 01:43 AM

[quote name="radio_blanck"]Sunt incepator in programare avr....( C ) si acum ma joc cu un mega16 si 5 leduri.
problema mare e ca eu am sarit peste niste pasi am inceput exact cu ce e mai frumos(practica)
am ajuns la instruciunea FOR si nu prea stiu cum sa o aplic si unde, am inteles eu c-am ce ar face.
Daca ma poate ajuta cineva as fi recunoscator

while (1)

{



{
PORTD.0=1;
delay_ms(500);
PORTD.0=0;
delay_ms(500);

}


}

for(n=0 ;n>5; n++);

nu stiu unde trebuie pusa ca sa aprind un led de 5 ori si pe urma sa stea stins sau aprins
cum o fi[/quote]
[quote name="ole"][quote name="radio_blanck"]Sunt incepator in programare avr....( C ) si acum ma joc cu un mega16 si 5 leduri.
problema mare e ca eu am sarit peste niste pasi am inceput exact cu ce e mai frumos(practica)
am ajuns la instruciunea FOR si nu prea stiu cum sa o aplic si unde, am inteles eu c-am ce ar face.
Daca ma poate ajuta cineva as fi recunoscator

while (1)

{



{
PORTD.0=1;
delay_ms(500);
PORTD.0=0;
delay_ms(500);

}


}

for(n=0 ;n>5; n++);

nu stiu unde trebuie pusa ca sa aprind un led de 5 ori si pe urma sa stea stins sau aprins
cum o fi[/quote]

sa incepem cu inceputul:
1. probabil headerele si functia main le-ai scris deja daca nu va trebui sa le scrii inainte de codul pe care l-ai postat.
2. in while ai un grup { } inutil. nu influenteaza codul dar e pus degeaba si poate fi derutant pentru incepatori.
3. for-ul este pus in afara while-ului si are ; dupa el deci nu face nimic util in afara de a ocupa 5 cicluri de procesor, asta in cazul in care ar fi corect scris. asa cum e scris acum nu intra in for deoarece n=0 si nu e mai mare ca 5.

un cod corect ar arata ceva de genul:
#include <avr/io.h>
#include <util/delay.h>

int main()
{DDRD|=(1<<PD0);
 while(1)
  {PORTD|=(1<<PD0);
   _delay_ms(500);
   PORTD&=~(1<<PD0);
  _delay_ms(500);
 }
 return 0;
}

sau daca vrei sa clipeasca de 5 ori apoi sa stea aprins:
#include <avr/io.h>
#include <util/delay.h>

int main()
{DDRD|=(1<<PD0);
 for(uint8_t i=0;i<5;i++)
  {PORTD|=(1<<PD0);
   _delay_ms(500);
   PORTD&=~(1<<PD0);
  _delay_ms(500);
 }
 PORTD|=(1<<PD0);
 while(1);
 return 0;
}
[/quote]

#3 OFFLINE   lorik199

lorik199

    Membru evoluat

  • Membri
  • PipPipPipPipPip
  • 2,749 posts
  • Locatie:Tg.neamt/Suceava

Posted 15 December 2009 - 03:35 AM

vin cu o problema... nu se poate modifica programul din acest proiect pt sa se putea masura pana la 50-100 V
vroiam pt a-l folosi la o sursa reglabila cu tensiune mai mare
P.S : as dori daca se ofera cineva sa modifice codul sa o faca pe varianta cu lcd de 1x16(din astea am)
multumesc

#4 OFFLINE   nana

nana

    Membru

  • Membri
  • PipPip
  • 403 posts

Posted 15 December 2009 - 09:03 PM

Din pacate nu se poate pentru ca tipu da doar hex-ul gata compilat nu si codul in sine iar 2 trebuiesc facute modificari la toata schema in principal la etaju de putere se mai pune in paralel un tranzistor de putere si se redimensioneaza etajul de comanda a tranzistorilor folositi in bucla de stabilizare. In principiu se modifica din schema lu ala ceea de digitala R4-R7 si respectiv R2-R8 dar na acolo vin niste calcule facute si in acel proiect eu nu am gasit si partea de analogic ca sa iti zic mai multe.

#5 OFFLINE   lorik199

lorik199

    Membru evoluat

  • Membri
  • PipPipPipPipPip
  • 2,749 posts
  • Locatie:Tg.neamt/Suceava

Posted 15 December 2009 - 10:31 PM

ok, nu este nici o problema, am crezut ca vor trebui modificate doar cateva linii de program

#6 OFFLINE   fubiansky

fubiansky

    Nou venit

  • Membri
  • Pip
  • 52 posts

Posted 30 December 2009 - 12:00 AM

Buna seara,

Am un sistem 5.1 genius in care s-a ars controleru (SN8P2714SB) si negasind acest controler incerc sa-l inlocuiesc cu Atmega8.
In mare am reusit sa scriu programul problema aparand la reglarea volumului (se foloseste un PT2258).
Exemplu:
D7->E9
D7->E8
D7->E7
D7->E6
D7->E5
D7->E4
D7->E3
D7->E2
D7->E1
D7->E0
D6->E9
D6->E8
D6->E7
D6->E6
D6->E5
D6->E4
D6->E3
D6->E2
D6->E1
D6->E0
etc etc.

Cand apas pe buton pentru a mari volumul acesta creste uniform pana ajunge la D7->E0, D6->E0 etc unde se simte o scadere a volumului apoi isi revine continuand sa creasca uniform.
Va rog sa ma ajutati in gasirea erori.

Am atasat datasheetul PT-ului si programul scris in bascom.

#7 OFFLINE   danzup

danzup

    Membru avansat

  • Membri
  • PipPipPipPip
  • 2,016 posts

Posted 30 December 2009 - 12:14 PM

'---------------------Modificare volum---------------------'
Sub Vol_up:

Decr Voluma
Waitms Vol_sp
If Voluma < &HE0 Then
Voluma = &HE9
End If
If Voluma = &HE9 Then
Decr Volumb
End If
If Volumb < &HD0 Then
Volumb = &HD0
End If
I2cstart
I2cwbyte &H88
I2cwbyte Voluma
I2cwbyte Volumb
I2cstop
Waitms 10
End Sub
'---------------------Modificare volum---------------------'
Sub Vol_dn:

Incr Voluma
Waitms Vol_sp
If Voluma > &HE9 Then
Voluma = &HE0
End If
If Voluma = &HE0 Then
Incr Volumb
End If
If Volumb > &HD7 Then
Volumb = &HD7
End If
I2cstart
I2cwbyte &H88
I2cwbyte Voluma
I2cwbyte Volumb
I2cstop
Waitms 10
End Sub

'-------------------------------------- am scos ce era in plus sau redundant si acum trebuie sa mearga !

#8 OFFLINE   danzup

danzup

    Membru avansat

  • Membri
  • PipPipPipPip
  • 2,016 posts

Posted 30 December 2009 - 01:38 PM

Buna seara,
Am un sistem 5.1 genius in care s-a ars controleru (SN8P2714SB) si negasind acest controler incerc sa-l inlocuiesc cu Atmega8.
In mare am reusit sa scriu programul problema aparand la reglarea volumului (se foloseste un PT2258).
Cand apas pe buton pentru a mari volumul acesta creste uniform pana ajunge la D7->E0, D6->E0 etc unde se simte o scadere a volumului apoi isi revine continuand sa creasca uniform.
Va rog sa ma ajutati in gasirea erori.
Am atasat datasheetul PT-ului si programul scris in bascom.

Daca tot finalizezi proiectul fa un nou thread si pune si schema si softul ca sa -si faca cei interesati modificarea la pocnitorile astea enshpe in unu pe viitor.

#9 OFFLINE   fubiansky

fubiansky

    Nou venit

  • Membri
  • Pip
  • 52 posts

Posted 05 January 2010 - 12:12 AM

Mai intai sa-l fac sa functioneze apoi voi face un thread pe tema asta.
Nu am reusit nimic...tot asa "in trepte" merge.
Am incercat cu oscilatorul intern de la 1MHz pana la 8MHz si tot nu a vrut.
Am setat si pe oscilator extern si tot nu a mers pana cand am atins cu degetul in zona cristalului si tot montajul s-a oprit.
L-am repornit si a functionat corect dar cand am luat alimentarea a revenit la vechiul obicei.
Danzup...daca scot acea parte din cod cand ajunge la D0 -> E0 se muta la D0 -> E9 si tot asa.(creste si scade volumul)
Atasez mai jos schema si ultima varianta de cod poate nu am facut ceva bine.

#10 OFFLINE   nickrvl

nickrvl

    Membru avansat

  • Membri
  • PipPipPipPip
  • 2,341 posts
  • Locatie:Rm Valcea

Posted 07 January 2010 - 06:18 PM

Am un Atmega8 cu LCD. Cum fac in Bascom sa-mi apara un caracter facut de mine, caracterul l-am facut cu LCD designer iara comanda ar trebui sa fie asta:
Deflcdchar 1 , 4 , 10 , 21 , 31 , 4 , 14 , 10 , 10
nu reusesc sa-l fac sa apara pe ecran.
Unde gresesc?

#11 OFFLINE   danzup

danzup

    Membru avansat

  • Membri
  • PipPipPipPip
  • 2,016 posts

Posted 07 January 2010 - 06:41 PM

Am un Atmega8 cu LCD. Cum fac in Bascom sa-mi apara un caracter facut de mine, caracterul l-am facut cu LCD designer iara comanda ar trebui sa fie asta:
Deflcdchar 1 , 4 , 10 , 21 , 31 , 4 , 14 , 10 , 10
nu reusesc sa-l fac sa apara pe ecran.
Unde gresesc?

Lcd Chr(1)
si o sa apara !

#12 OFFLINE   nickrvl

nickrvl

    Membru avansat

  • Membri
  • PipPipPipPip
  • 2,341 posts
  • Locatie:Rm Valcea

Posted 07 January 2010 - 11:36 PM

[quote name="danzup"][/quote]
Lcd Chr(1)
si o sa apara ![/quote]

Locate 1 , 7
Lcd Chr(1)
Deflcdchar 1 , 4 , 10 , 21 , 31 , 4 , 14 , 10 , 10

Merge, multumesc.

#13 OFFLINE   petraru86

petraru86

    Nou venit

  • Membri
  • Pip
  • 4 posts

Posted 17 February 2010 - 09:24 PM

Fac un proiect ,...un fel de robot cu ATmega16 programarea am facut-o cu o placa de test mikroelectronica se numeste easyAVR4 , pe aceasta placa am testat programul si merge perfect iar cand il pun p robot imi da 5 v pe ambele sensuri ale motorului si nu stiu ce sa ma mai fac.Aveti vre-o idee??

#14 OFFLINE   nana

nana

    Membru

  • Membri
  • PipPip
  • 403 posts

Posted 23 February 2010 - 08:28 AM

Pai verifica daca placa corespunde ok din punct de vedere electronic cu schema !! sa nu fie busit vre-un pin sau ceva de la controler. 2 se poate ca tu pe placa aia sa ai un bootloader si pe controlerul virgin sa nu ai asa ceva(dar asta nu prea ar putea sa iti afecteze programu care este incarcat la alta adresa in memorie).

Cu_reclama

Cu_reclama
  • Membri

#15 OFFLINE   yo6pir

yo6pir

    Electronist

  • Membri
  • PipPip
  • 882 posts
  • Locatie:T├órgu-Mures

Posted 25 February 2010 - 11:10 PM

Salutare baieti,
Am si eu o nedumerire legata de un program scris in Bascom, pentru un MCU Atmega8.
Este vorba de o comanda a 4 sub-meniuri cu ajutorul unui buton. Am un singur buton disponibil. Codul merge bine si arata asa:
------------------------------------------------------------------------------------
Buton = Pinc.2

If Buton = 0 Then
Waitms 40
If Buton = 0 Then
Incr Nr
Bitwait Pinc.2 , Set
End If
End If

If Nr = 5 Then
Nr = 1
End If
Select Case Nr
Case 1 : Call Submeniu1
Case 2 : Call Submeniu2
Case 3 : Call Submeniu3
Case 4 : Call Submeniu4
End Select

------------------------------------------------------------------------------
Problema care o supun atentiei este adaugarea unei rutine care sa-mi citeasca apasarea butonului (acelasi!) un timp de 5 secunde (sa zicem...) si daca se intampla acest lucru sa trec la un "Submeniu5". Pare simplu (pentru cei care stiu) dar eu nu am reusit sa-l fac pana acuma.
Daca stie cineva o solutie, multumesc anticipat!




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users