 |

|
Elektronika.lt portalo forumas
Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2025 10 14, 05:44. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » elementarus kodas
|
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
|
|
|
Puslapis 1 iš 2 Pereiti prie 1, 2 Toliau |
|
 |
elementarus kodas |
Parašytas: 2010 10 27, 22:30 |
|
|
|
sveiki, neperseniausiai pradejau po biski krapstyti mikrovaldikliu programu kurima, tai noriu susizinoti koks kodas turetu buti na jei noriu su attiny2313 suskaiciuoti mygtuko paspaudimus? arba gal zinot kur rast video su pamokomis kaip tai daryti aciu is anksto  |
|
|
|
|
 |
elementarus kodas |
Parašytas: 2010 10 27, 22:38 |
|
|
|
Kazkodel man atrodo sitame portale buvo strapsnis apie tai  |
|
|
|
|
 |
elementarus kodas |
Parašytas: 2010 10 27, 22:50 |
|
|
|
Man atrodo kad pradėk mokintis nuo algoritmo braižymo ant popieriaus - įgausi patirties kaip turi būti rašoma programa, tada nereikės ir tų algoritmų braižymo, jei sugebėsi mintyse dėlioti programą.
Plius dar klausimas - skaičiuoti tai jis suskaičiuos, o kaip pamatysi kiek tų paspaudimų tavo mikrokontroleris suskaičiavo? Reik kažkaip ir atvaizduoti tą skaičių. |
|
|
|
|
 |
elementarus kodas |
Parašytas: 2010 10 27, 22:54 |
|
|
|
O tai su kokiu softu rasysi,ne visi gi zino?
Tu geriau pats parasyk pradzia kaip tu manai, tada ir patarimu gausi,o nuo nulio visos teorijos niekas cia tau neisdestys.
kodas turetu buti kazkas panasaus taip: if(P) {n++}; |
|
|
|
|
 |
elementarus kodas |
Parašytas: 2010 10 27, 23:22 |
|
|
|
Ingo rašo: |
O tai su kokiu softu rasysi,ne visi gi zino?
Tu geriau pats parasyk pradzia kaip tu manai, tada ir patarimu gausi,o nuo nulio visos teorijos niekas cia tau neisdestys.
kodas turetu buti kazkas panasaus taip: if(P) {n++}; |
avr studio c kalba naudoju |
|
|
|
|
 |
elementarus kodas |
Parašytas: 2010 10 27, 23:24 |
|
|
|
sopkis rašo: |
Man atrodo kad pradėk mokintis nuo algoritmo braižymo ant popieriaus - įgausi patirties kaip turi būti rašoma programa, tada nereikės ir tų algoritmų braižymo, jei sugebėsi mintyse dėlioti programą.
Plius dar klausimas - skaičiuoti tai jis suskaičiuos, o kaip pamatysi kiek tų paspaudimų tavo mikrokontroleris suskaičiavo? Reik kažkaip ir atvaizduoti tą skaičių. |
galvoju kad reiktu pradziai su led bandyti atvaizduoti va kazka isivaizduoju tarkim paspaudziu knopke 2 kartus ir po 5s led sumirksi 2 kartus |
|
|
|
|
 |
 |
elementarus kodas |
Parašytas: 2010 10 28, 08:19 |
|
|
|
unsigned char Myygt(void)
{
mygt=0;
skait1=0;
skit_1:
if((!PORTC_0)||(!PORTC_1)||(!PORTC_2))
{GICR=0;// uzdarusti pertraukima nuo int
skait1=skait1+1;
if(skait1>=1000)
{
skait1=0;
if(!PORTC_0) mygt = 1;
if(!PORTC_1) mygt = 2;
if(!PORTC_2) mygt = 3;
if((!PORTC_2)&&(!PORTC_1)) mygt = 5;
skait2=0;skait1=0;goto skit_2;
} else goto skit_1;
}else goto pa_m1;
skit_2: //laukimas kol atleis mygtukus ir tikrinimas ar nepereiti i apasaugos rezima
{
skait1=skait1+1; //pauzes po mygtuko atleidimo pradzia
if(skait1>1000)
{
skait1=0;
} else {goto skit_2;}
}
pa_m1:
skait1=0;
return mygt;
}
galetu buti taip... paprograme ivertina kontaktu virpejima paspaudziant iratleidziant, be to ivertinamas dvieju mygtuku paspaudimas vienu metu... |
|
_________________ Nieko taip lengvai nedaliname, kaip patarimus... |
|
|
|
 |
 |
elementarus kodas |
Parašytas: 2010 10 28, 10:15 |
|
|
|
Čia su iar ant atmegos (ant attiny ir winavr pats pasirasysi jei noresi), skaičiuoja iki 255 paspaudimų.
Čia filmukas kaip su proteus veikia http://www.youtube.com/watch?v=qJ2QLKwlFRU
Kodas: |
//**************************************************************************
//*** IAR atmega 4MHz led mirksiukas ***************************************
//**************************************************************************
#define ENABLE_BIT_DEFINITIONS
#include <ioavr.h>
#include <intrinsics.h>
//**************************************************************************
#define f_cpu 4000000
#define msek (f_cpu / 1000)
#define sbi(PORT,BIT) (PORT |= (1<<BIT))
#define cbi(PORT,BIT) (PORT &= ~(1<<BIT))
#define bitas(PIN,BIT) (PIN &(1 << BIT))
#define PORT PORTC
#define PIN PINC
#define DDR DDRC
#define BT 0
#define LED 7
//**************************************************************************
unsigned char count;
//**************************************************************************
void delay_ms(unsigned int cnt){
unsigned int i;
for(i=0; i<cnt; i++){
__delay_cycles(msek);
}
}
//**************************************************************************
#pragma vector=TIMER1_COMPA_vect //pertraukimas po 5s (atleidus knopke)
__interrupt void my_handler(void)
{
unsigned char i;
for(i=0; i<count; i++)
{
sbi(PORT,LED);
delay_ms(250);
cbi(PORT,LED);
delay_ms(250);
}
count = 0;
TCNT1 = 0;
}
//**************************************************************************
void main(void)
{
DDR = (1 << LED | 0 << BT);
PORT = (0 << LED | 1 << BT);
TCCR1A = 0x00;
TCCR1B = (1<<CS12 | 0<<CS11 | 1<<CS10); // presc 1024
OCR1A = 19531; // 1024 * 19531 * (1/4MHz) = 5s
TIMSK = (1 << OCIE1A);
__enable_interrupt();
while(1)
{
if(!bitas(PIN,BT))
{
__disable_interrupt();
delay_ms(10);
count++;
while(!bitas(PIN,BT));
TCNT1 = 0;
__enable_interrupt();
delay_ms(10);
}
}
}
|
|
|
|
|
|
 |
 |
elementarus kodas |
Parašytas: 2010 10 28, 12:02 |
|
|
|
Visi naujokai pries uzduodami klausimus, paieskokit Centronic pranesimu - rasit 90% atsakymu  |
|
|
|
|
 |
elementarus kodas |
Parašytas: 2010 10 28, 13:48 |
|
|
|
centronic grazus kodas kai dirbi virtualioj aplinkoj tavo kodas zinaip kaip veiktu realiam pasauly kad kai paspaudi gausi 100 paspaudimu  |
|
|
|
|
 |
elementarus kodas |
Parašytas: 2010 10 28, 13:57 |
|
|
|
gcds rašo: |
centronic grazus kodas kai dirbi virtualioj aplinkoj tavo kodas zinaip kaip veiktu realiam pasauly kad kai paspaudi gausi 100 paspaudimu  |
Bandei paspaust 100 kartų?  |
|
|
|
|
 |
elementarus kodas |
Parašytas: 2010 10 28, 14:13 |
|
|
|
centronic rašo: |
gcds rašo: |
centronic grazus kodas kai dirbi virtualioj aplinkoj tavo kodas zinaip kaip veiktu realiam pasauly kad kai paspaudi gausi 100 paspaudimu  |
Bandei paspaust 100 kartų?  |
Man reikes paspausti tik karta o kontroleris pamatyis 100 ju del bounce...
http://www.ganssle.com/debouncing.htm |
|
|
|
|
 |
elementarus kodas |
Parašytas: 2010 10 28, 14:25 |
|
|
|
gcds rašo: |
centronic rašo: |
gcds rašo: |
centronic grazus kodas kai dirbi virtualioj aplinkoj tavo kodas zinaip kaip veiktu realiam pasauly kad kai paspaudi gausi 100 paspaudimu  |
Bandei paspaust 100 kartų?  |
Man reikes paspausti tik karta o kontroleris pamatyis 100 ju del bounce...
http://www.ganssle.com/debouncing.htm |
Tu bent supranti kaip veikia tas kodas, kad tokias nesamones rasai? Ir siaip kodas visiskai negrazus, jau vien tie delay ISR viduje... |
|
|
|
|
 |
 |
elementarus kodas |
Parašytas: 2010 10 28, 16:49 |
|
|
|
gcds rašo: |
centronic rašo: |
gcds rašo: |
centronic grazus kodas kai dirbi virtualioj aplinkoj tavo kodas zinaip kaip veiktu realiam pasauly kad kai paspaudi gausi 100 paspaudimu  |
Bandei paspaust 100 kartų?  |
Man reikes paspausti tik karta o kontroleris pamatyis 100 ju del bounce...
http://www.ganssle.com/debouncing.htm |
O kas čia tavo manymu?
if(!bitas(PIN,BT))
{
__disable_interrupt();
delay_ms(10);
count++;
while(!bitas(PIN,BT));
TCNT1 = 0;
__enable_interrupt();
delay_ms(10);
}
jei permažai 10mS, gali daugiau isirašyt
sneikaz rašo: |
jau vien tie delay ISR viduje... |
O kaip siūlai daryt? |
|
|
|
|
|
 |
Google paieška forume |
|
 |
Naujos temos forume |
|
 |
FS25 Tractors
Farming Simulator 25 Mods,
FS25 Maps,
FS25 Trucks |
 |
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
 |
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS25 Mods |
 |
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
 |
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
 |
FS25 Mods
FS25 Maps,
FS25 Cheats,
FS25 Install Mods |
 |
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps |
 |
ATS Trailers
American Truck Simulator Mods,
ATS Trucks,
ATS Maps |
|

|
 |