Elektronika.lt
 2025 m. sausio 8 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 Forumas / + pokalbiai
 - Paieška forume
 - D.U.K. / Forumo taisyklės
 - Narių sąrašas
 - Registruotis
 - Prisijungti

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 01 08, 00:07. Visos datos yra GMT + 2 valandos.
 Forumas » Mikrovaldikliai » Neiseina uzprograminti ATiny2313
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 12
Pereiti prie 1, 2  Toliau
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 Neiseina uzprograminti ATiny2313
PranešimasParašytas: 2008 03 31, 00:12 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Hanibalas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Programuoju IAR programa C++ kalba.

As noriu padaryti taip kad i mikroschemos koja sakykim PB0 atejus +5 V man per TXD nieko nesiustu, bet dingus signalui t.y. atsiradus 0 V pradetu siusti skaiciu i kompa.


Siuo atveju matom kad perisiuncia skaiciu "2".

Bet as darau dabar atvirksciai, tarkim kai yra +5 V tada turi siusti per USARTA i kompa skaicius 1,2,3.
Problema ta kad man siuncia TIK viena skaiciu ir nereaguoja ar paduodi +5V ar ne, beto neleidzia isiterpti kitiem skaiciam.
Pagal mano pateikta koda visa laika siuncia tik "1", o dvejeto niekaip.

Gal kas galit patart ka as darau ne taip ? nes jau beviltiska padetis man:(

#include "iotiny2313.h"
#include "stdio.h"

void velinam2();
void USART_Transmit( unsigned char data );

void main()
{
UBRRL = 25;
UCSRB = (1<<RXEN)|(1<<TXEN);
UCSRC = (1<<USBS)|(3<<UCSZ0);
//SREG =128;// Ájungiame globalias pertrauktis
DDRB=0; // B prievadas nustatomas i skaitymo rezima

while(1) // Aþminas ciklas
{
if(PORTB1==1) // sitoj vietoj taip suprantu : Jei i PB0 koja paduodu
// +5 toliau vykdo sekancias komandas
{
velinam2();
for(int a=0; a<2; a++)
USART_Transmit(0x31);
}

if(PORTB2==1)
{ velinam2();
for(int i=0; i <3; i++)
USART_Transmit(0x32);

}
}// while pabaiga

} // main pabaiga

void USART_Transmit( unsigned char data )
{ unsigned int sk=0;
while (sk<=3)
{
/* Wait for empty transmit buffer */
while ( !( UCSRA & (1<<UDRE)) )
/* Put data into buffer, sends the data */
UDR = data;
sk++;
}
}

void velinam2()
{unsigned int i=0;
for(i=0; i<50000; i++){}
}
 Neiseina uzprograminti ATiny2313
PranešimasParašytas: 2008 03 31, 00:40 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
pirma nerasyk sitaip
USART_Transmit(0x32);
o rasyk taip:
USART_Transmit('2');

kas cia per nesamone? kam tas ciklas?
Kodas:
 if(PORTB1==1) // sitoj vietoj taip suprantu : Jei i PB0 koja paduodu
// +5 toliau vykdo sekancias komandas
{
velinam2();
for(int a=0; a<2; a++)
USART_Transmit(0x31);
}


ar netinka taip?
if (PINB1) {USART_Transmit(0x31);velinam2();}


beje tavo klaida kad netinka rasyti PORT kai nori priimti duomenis tada reikia rasyti PIN

lengviausi butu daryti sitaip:

while(1)
{
if (PINB1) {USART_Transmit('1');}
if (PINB2) {USART_Transmit('2');}
delay(10ms);//ar kiek tau patinka, bet nebutina
}
 Neiseina uzprograminti ATiny2313
PranešimasParašytas: 2008 03 31, 15:47 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Hanibalas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Na as padariau taip :

if (PINB&1==1) {USART_Transmit('1');}
else {USART_Transmit('2');}

Kai i koja paduodu logini 1 (+5 V) per terminala man veda graziai 11111111111111111111111111,
bet tik atjungiu iskarto pradeda siusti i terminala 2221111222212222112, primaiso vienetu atseit lyg butu paduodama +5, va su situ kovoju:/

Beto tai gali buti del to kad i mikruske paduodu tik VCC, GND, TXD ir RXD kad komunikuotu su su TTL-RS232 lygiu suderintoju, daugiau nieko nera Smile

Ta pati bandziau su diodais. Tai kai +5 atjungiu, diodas mirgsi pastoviai, is kur jis gauna ta +5 nepagaunu :/
 Neiseina uzprograminti ATiny2313
PranešimasParašytas: 2008 03 31, 16:54 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
jei tu nepanaudotas kojas palieki plaukioti ore tai tada neaisku kas ten gali nuti per signalai ant ju

ir butent rasyk
if (PINB&1==1) {USART_Transmit('1');}
if (PINB&2==1) {USART_Transmit('2');}


o ne su else,tada aiskai pastebesi kad gauni bruda i koki iejima.
kad isvengti to usdek ant iejimu varzas i korpusa

beje tokiu atveju jeu i abu iejimus paduosi vieneta tada tau rasys 1212121212
 Neiseina uzprograminti ATiny2313
PranešimasParašytas: 2008 03 31, 17:04 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Hanibalas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Gerai, reikes pabandyt.
 Neiseina uzprograminti ATiny2313
PranešimasParašytas: 2008 03 31, 21:25 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Hanibalas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Digix rašo:
jei tu nepanaudotas kojas palieki plaukioti ore tai tada neaisku kas ten gali nuti per signalai ant ju

ir butent rasyk
if (PINB&1==1) {USART_Transmit('1');}
if (PINB&2==1) {USART_Transmit('2');}


o ne su else,tada aiskai pastebesi kad gauni bruda i koki iejima.
kad isvengti to usdek ant iejimu varzas i korpusa

beje tokiu atveju jeu i abu iejimus paduosi vieneta tada tau rasys 1212121212


Pajungiau varzas 15k prie PB0 ir PB1 i korpusa, tai pradejo normaliau veikt, bet.... Smile su paciu pirmu IF viskas ok jeigu jis buna tik vienas, viska siuncia svariai, bet jeigu idedu
if (PINB&2==1) {USART_Transmit('2');}
tai tada nieko beveik nesiuncia, retkarciais 1 isiunciao iki 2 nedaeina.
 Neiseina uzprograminti ATiny2313
PranešimasParašytas: 2008 03 31, 21:48 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
tai kazkas kita tau blogai tada
kaip as parasiau visi if yra nepriklausomi ir turi veikti atskirai.

pamegink uzdeti kievieno pabaigoje keliu ms uzdelsima
if (PINB&1==1) {USART_Transmit('1'); delay(1ms);}


gal cia tavo kompiliatorisu durniuoja, tai pamegink su vienu if

if (PINB&1==1) {USART_Transmit('1');}
pabandyk ir toki vairianta
if (PINB&2==1) {USART_Transmit('1');}
 Neiseina uzprograminti ATiny2313
PranešimasParašytas: 2008 04 01, 18:01 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Hanibalas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Ne nu cirkai dedasi:D gal rimtai kompiliatorius durniuoja Very Happy

Em db dar viena beda atsirado :] , nepastbejau kaip + laidas ant - uzkrito betestuojant Very Happy
Tai db mikruske jau nieko nesiuncia Very Happy, pradzioj maniau kad gal TTL-RS232 dar galejo pakept, bet ta pasiziurejau max232 atliekama turejau attiny2313 irgi, tai TTL-RS232 lyg normaliai veikia, bet va nauja Attiny2313 neveikia kaip ankstesnioji, nors koda ta pati idejau. Informacija Per USARTA siuncia bet neteisinga pvz jokio signalo nepaduodu o siuncia vistiek 111111 ir poto sustoja. naujai attiny fuse bit nustaciau.
Zodziu ainu kariaut toliau...
 Neiseina uzprograminti ATiny2313
PranešimasParašytas: 2008 04 07, 15:47 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Hanibalas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
na vot po ilgos pertraukos vel prisedau Smile

#include "iotiny2313.h"
void velinam();

void USART_Transmit( unsigned char data );
int main ()
{
//----USART-INIT----------------------------------
UBRRL = 25;
UCSRB = (1<<RXEN)|(1<<TXEN);
UCSRC = (1<<USBS)|(3<<UCSZ0);
//------------------------------------------------

while(1){

velinam();
if ((PINB&1)>0) { USART_Transmit('1'); }
velinam();
if ((PINB&2)>0) {USART_Transmit('2'); }



}} // while ir main kartu


void USART_Transmit( unsigned char data )
{
while ( !( UCSRA & (1<<UDRE)) ) /* Wait for empty transmit buffer */
UDR = data; /* Put data into buffer, sends the data */


}
// V?linimas trumpam laiko tarpui
void velinam()
{unsigned int i=0;
for(i=0; i<100; i++){}
}

//--------------------

Na skaicius siuncia graziai per USART kai paduodu +5 V, bet db va iskilo klausimas ka reik daryt kad jeigu i abi kojas atejus +5 signalui siustu skaicius pakaitom, nes db kai paduodu tai siuntimas is viso sustoja. Gal naudot kokias pertrauktis, gijas ar dar ka ?
 Neiseina uzprograminti ATiny2313
PranešimasParašytas: 2008 04 07, 16:19 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
tavo programa ir dabar turi pakaitom siusti jei i abu padavei

jei nesiuncia tai cia kazkokie stebuklai arba kompiliatorius durniuoja

beje tavo velinimo funkcija nelabai kam naudonga nes nebamau kad bent 1 ms pavelins
 Neiseina uzprograminti ATiny2313
PranešimasParašytas: 2008 04 08, 09:33 Pranešti apie taisyklių pažeidimą Atsakyti su citata
klemeris
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
sveiki programeriai Very Happy as esu zalias su kontroleriais bet noriu pradeti su jeis kazka veikti ir is kart susiduriau su problema pasigaminau programatoriu kaip nurodyta elektronikos psl ten kur pradetantiems jis man puikiai irasinedavo programas y at90s2313 o attiny2313 neprogramina kame kampas kas ne taip man net nenuskaito jo o ka jau kalbet apie yrasyma naudoju pony prog gal galit pagelbet
 Neiseina uzprograminti ATiny2313
PranešimasParašytas: 2008 04 09, 18:08 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Hanibalas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
klemeris rašo:
sveiki programeriai Very Happy as esu zalias su kontroleriais bet noriu pradeti su jeis kazka veikti ir is kart susiduriau su problema pasigaminau programatoriu kaip nurodyta elektronikos psl ten kur pradetantiems jis man puikiai irasinedavo programas y at90s2313 o attiny2313 neprogramina kame kampas kas ne taip man net nenuskaito jo o ka jau kalbet apie yrasyma naudoju pony prog gal galit pagelbet


hem, gal naudoji labai sena pony prog ? kur nera Attiny2313 bibliotekos ???
O Fuse bitus nusistatei ? Nu nzn, as pasidariau programatoriu su com jungtimi, ir Attiny lb puikiai kepa :], tik reik teisingai i lizda uC idet jau kelias attiny sukepinau :/ dohh.....
 Neiseina uzprograminti ATiny2313
PranešimasParašytas: 2008 04 09, 18:18 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Hanibalas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
To Digix:
Na pasidariau kad man veiktu kodas Smile

#include "iotiny2313.h"

void velinam();
void USART_Transmit( unsigned char data );
void pirmas();
void antras();
void trecias();
void ketvirtas();

int main ()
{
//----USART-INIT----------------------------------
UBRRL = 25;
UCSRB = (1<<RXEN)|(1<<TXEN);
UCSRC = (1<<USBS)|(3<<UCSZ0);
//------------------------------------------------

while(1)
{ pirmas();
antras();

}

} // main pabaiga


void USART_Transmit( unsigned char data )
{ unsigned char sk=0;
while(sk<=1)
{
while ( !( UCSRA & (1<<UDRE)) ) /* Wait for empty transmit buffer */
{UDR = data; /* Put data into buffer, sends the data */
sk++;
}
}
}
// V?linimas trumpam laiko tarpui
void velinam()
{unsigned int i=0;
for(i=0; i<100; i++){}
}

void pirmas()
{ velinam();
if ((PINB&1)>0)
{
USART_Transmit('1');
}
}
void antras()
{velinam();
if ((PINB&2)>0)
{
USART_Transmit('2');
}
}
void trecias()
{ velinam();
if ((PINB&3)>0)
{
USART_Transmit('3');
}
}
void ketvirtas()
{ velinam();
if ((PINB&4)>0)
{
USART_Transmit('4');
}
}

//--------------------
// Pabaiga

Na seip mikruske normaliai veike kai paduodu +5 siuncia reikiamus skaicius, netgi jei ir i kelias kojas atejo signalas tai skaicius siuncia pakaitom



Bet va pasidariau tokia schema:

Ir neveikia Sad````
Neikerttu kame esme, nzn gal cia su kvarcu kazkas negerai, nes jeigu prie sios schemos pajungiu kvarca is programatoriaus tai pradeda siusti skaicius...bet... primeta vel visokiu siuksliu.
Digix, o tos kitos kabancios "ore" kojos itakos neturi ??? Gal jas reik apjungt visas ir i zeme paduot ?
Ta pirma schama kai prijungiau rezistorius 15k prie PB1..PB4 koju, tai tada siuksliu nemete, veike normaliai, bet kai susilitavau paskutine schema, tai kartais siuncia tai nesiuncia, meto siuksliu visokiu, nu zdz nzn, vel beviltiska padetis :/
O sakykim ka man duotu jeigu as is VCC per 10k rezistoriu paduociau signala i RESET ?[/img]
 Neiseina uzprograminti ATiny2313
PranešimasParašytas: 2008 04 09, 18:28 Pranešti apie taisyklių pažeidimą Atsakyti su citata
klemeris
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
labas sory kad kisuosi bet gal gali pagelbet pasidariau viska kaip nurodyta elektronikos psl apie programatorius ir pan bet ta workbench iar manes nesupranta kai bandau kompiliuot duotus pavyzdzius, (
#include <iom16.h>
int main( void )
{
DDRD=1; // Nustatome 14 Atmegos išvadą kaip išėjimą;
į atitinkamą registro skiltį įrašome 1
PORTD=9;// Nurodome ką turime išvesti t.y. 9 dešimtainis
skaičius atitinka 1001 dvejetainį
return 0;
})
ismeta "Fatal Error[Cp001]: Copy protection check, No valid license found for this product [24] gal zinai kame kampas Sad
"
 Neiseina uzprograminti ATiny2313
PranešimasParašytas: 2008 04 09, 20:22 Pranešti apie taisyklių pažeidimą Atsakyti su citata
JAULER
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką MSN Messenger
reikia validuoti workbench`ą

_________________
nepamirškit, klysti žmogiška Wink
privatas - privatiems klausimams
arch linux Wink Smile
Pradėti naują temą  Atsakyti į pranešimą Pereiti prie 1, 2  Toliau
 
Forumo sistema: phpBB
 „Google“ paieška forume
 Kas naujesnio?
 Naujos temos forume

Global electronic components distributor – Allicdata Electronics

Electronic component supply – „Eurodis Electronics“

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Full feature custom PCB prototype service

Sveiki ir ekologiški maisto produktai

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

Technologijos.lt

Buitinė technika ir elektronika internetu žemos kainos – Zuza.lt

www.esaugumas.lt – apsaugok savo kompiuterį!

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

Draugiškas internetas

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
LEGO
Mänguköök, mudelautod, nukuvanker
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope
FS25 Mods
FS25 Harvesters, FS25 Tractors Mods, FS25 Maps Mods
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija
FS25 Mods
FS25 Maps, FS25 Cheats, FS25 Install Mods
GTA 6 Weapons
GTA 6 Characters, GTA 6 Map, GTA 6 Vehicles
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps
ATS Trailers
American Truck Simulator Mods, ATS Trucks, ATS Maps
Reklama
‡ 1999– © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Turinys | Reklama | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina
Script hook v, Openiv, Menyoo
gta5mod.net
FS25 Mods, FS25 Tractors, FS25 Maps
fs25mods.lt
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
Reklamos paslaugos
SEO sprendimai

www.addad.lt
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
FS22 mods, Farming simulator 22 mods,
FS22 maps

fs22.com
Reklama


Reklama