Port vagy Pin

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
sytex
DrótVégénSzéndarab
Hozzászólások: 36
Csatlakozott: 2010. június 10. csütörtök, 6:00

Port vagy Pin

Hozzászólás Szerző: sytex »

Sziasztok! Első hozzászólásom, ezt kérem a későbbiekben figyelembe venni :)

Szóval Adott egy egyszerű feladat mely ilyen megoldásban nem működik:

Kód: Egész kijelölése

$regfile = "m8def.dat"
$crystal = 1000000
Config Pinb.0 = Output
Do
   Pinb.0 = 0
   Waitms 500
   Pinb.0 = 1
   Waitms 500
Loop
End
Így sem:

Kód: Egész kijelölése

$regfile = "m8def.dat"
$crystal = 1000000
Config Portb.0 = Output
Do
   Pinb.0 = 0
   Waitms 500
   Pinb.0 = 1
   Waitms 500
Loop
End
Viszont így igen:

Kód: Egész kijelölése

$regfile = "m8def.dat"
$crystal = 1000000
Config Portb.0 = Output
Do
   Portb.0 = 0
   Waitms 500
   Portb.0 = 1
   Waitms 500
Loop
End
Így is:

Kód: Egész kijelölése

$regfile = "m8def.dat"
$crystal = 1000000
Config Pinb.0 = Output
Do
   Portb.0 = 0
   Waitms 500
   Portb.0 = 1
   Waitms 500
Loop
End
Valaki jobban hozzámértő (csak ilyen van sztem) el tudja magyarázni hogy mi a különbség a pin és a port között? Azaz a fentiek közül melyik a "szabványos" megoldás. (Pl ha B porton szeretnék 2 be- és 2 kimenetet használni akkor hogyan kell Config-olni és hivatkozni rá?)

Nagy-nagy köszönet: egy kezdő
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

http://avr.tavir.hu/modules.php?name=Co ... age&pid=54

Roviden:

Egy kivezetésen 3 dolog állítható:
1, ki- vagy bemenet. Ezt a Config portb.1 = input | output
2, a felhúzóellenállás a kimeneten be vagy ki van kapcsolva. Ezt a portb.1=1 | 0 utasítással lehet.
3, állapota, azaz magas vagy alacsony a láb állapota. Ezt a pinb.2 hivatkozással lehet megnézni.

Azaz ha a LÁB állapotát _állítod_ port, ha az állapotára/rálógatott szintre vagy kíváncsi: pin

A Config pinx.y az csak egy _engedmény_, mert sokan elrontották h port v. pin. A szabványos a config portx.y megadása.
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Hozzászólás Szerző: kapu48 »

Pedig ropat 1*ű megjegyezni:
Pin = Port-be „P= Port”
Pout = Port-ki „Port =P”
:wink:
Avatar
sytex
DrótVégénSzéndarab
Hozzászólások: 36
Csatlakozott: 2010. június 10. csütörtök, 6:00

Hozzászólás Szerző: sytex »

Köszönöm mindenkinek
Avatar
gerry
Chipgyilok
Hozzászólások: 252
Csatlakozott: 2005. október 11. kedd, 6:00

Hozzászólás Szerző: gerry »

Robert írta:http://avr.tavir.hu/modules.php?name=Co ... age&pid=54

Roviden:

Egy kivezetésen 3 dolog állítható:
1, ki- vagy bemenet. Ezt a Config portb.1 = input | output
2, a felhúzóellenállás a kimeneten be vagy ki van kapcsolva. Ezt a portb.1=1 | 0 utasítással lehet.
3, állapota, azaz magas vagy alacsony a láb állapota. Ezt a pinb.2 hivatkozással lehet megnézni.

Azaz ha a LÁB állapotát _állítod_ port, ha az állapotára/rálógatott szintre vagy kíváncsi: pin

A Config pinx.y az csak egy _engedmény_, mert sokan elrontották h port v. pin. A szabványos a config portx.y megadása.
Ha a fenti leírást veszem alapul, és jól értelmezem, akkor a portokat lehet úgy használni, hogy bemenetként programozom, a belső felhúzóellenállást bekapcsolom, majd egy optocsatolóval a bemenetet letestelem, mintha egy külső 10K-s ellenállással kapcsoltam volna össze?

Ha a PortX.Y utasítással lehet bekapcsolni a felhúzó ellenállást akkor ha azt egy nyomógombal letestelem, akkor nem megy tönkre a proc, mivel csak max 40mA a terhelhetősége?

Ezekből kiindúlva, minden egyes kapcsolásban, ha vezérlek valamit akkor az a felhúzó ellenállásal teszem?

köszönöm

Kép

Uploaded with ImageShack.us
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

A belső felhúzóellenállás 30...80k-s, így csak végszükség esetén használható. Nézd meg az adatlapot. A rajzod pontosabban:
- a lábon a GNDfele húzott kapcsoló
- utána egy kapu (ez hiányzik)
- itt van utána a felhúzóellenállás


Ha egy lábad bemenet, akkor annak bemenetei ellenállása >20...200 k!
Optocsatolónk kell a külső ellenállás a Vcc és a láb közé! (1...10k)

Ha a lábad _KIMENET_ akkor jön ki rajta 40 mA!
Avatar
gerry
Chipgyilok
Hozzászólások: 252
Csatlakozott: 2005. október 11. kedd, 6:00

Hozzászólás Szerző: gerry »

Robert írta:A belső felhúzóellenállás 30...80k-s, így csak végszükség esetén használható. Nézd meg az adatlapot. A rajzod pontosabban:
- a lábon a GNDfele húzott kapcsoló
- utána egy kapu (ez hiányzik)
- itt van utána a felhúzóellenállás


Ha egy lábad bemenet, akkor annak bemenetei ellenállása >20...200 k!
Optocsatolónk kell a külső ellenállás a Vcc és a láb közé! (1...10k)

Ha a lábad _KIMENET_ akkor jön ki rajta 40 mA!
Tehát ha a portot bemenetként konfigolom és kiadom rá a portb.0=1-et akkor megjelenik rajta az "H" szint. És mielött még a portb.0 lábat letestelném, kössek sorba vele egy ellenállást?

az optonak a tranyó részével húznám testre, akkor az optó tranyójának emiterére tegyek ellenállást és azt kössem a testre?

Kép

Uploaded with ImageShack.us
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Port simán bemenet. Ekkor a felvett áram a port felé nehány uA!

A belső felhúzó nem áramot ad hanem logikai jelszinet ad csupán. Próbáld ki deszkamodellen egy érzékeny árammérővel. <0.1mA-t mérsz, azaz a műszer hibahatárán vagy!
Avatar
gerry
Chipgyilok
Hozzászólások: 252
Csatlakozott: 2005. október 11. kedd, 6:00

Hozzászólás Szerző: gerry »

Robert írta:Port simán bemenet. Ekkor a felvett áram a port felé nehány uA!

A belső felhúzó nem áramot ad hanem logikai jelszinet ad csupán. Próbáld ki deszkamodellen egy érzékeny árammérővel. <0.1mA-t mérsz, azaz a műszer hibahatárán vagy!
Ok! Mérek és köszönöm!
Válasz küldése