Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

Čtení vstupu Atmega

 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
JirkaRCK



Založen: Apr 25, 2010
Příspěvky: 226
Bydliště: Olomouc/Brno

PříspěvekZaslal: čt leden 16 2014, 11:46    Předmět: Čtení vstupu Atmega Citovat

Dobrý den,

předem se omlouvám za svůj velice triviální dotaz, ale už si fakt nevím rady. Jsem úplný začátečník s uC, včera jsem si koupil Atmegu8 a zkoušel nějaké základní věci (blikač, bin. hodiny...). Výstupy mi fungovaly pěkně, ale za celý den se mi nepodařilo rozjet vstup (třeba tlačítko). Přijde mi to jako tak jednoduchá věc, že váhám, jestli spíš nemám port nějak částečně odpálený.

V céčku:


kód:
DDRD = 0; //vstupní
PORTD= 1; //Připojí Pull=Upy

while(1)
      PORTB=PORTD; // Na B by mely svítit ledky podle stavu na portu D


S pull-up rezistory očekávám 1 pokud je nožička "ve vzduchu" a 0 pokud je připojena ke kostře.

Domnívám se správně, nebo někde vidíte chybu?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
ST78



Založen: Nov 16, 2009
Příspěvky: 113

PříspěvekZaslal: čt leden 16 2014, 12:09    Předmět: Citovat

1) Zkontroluj jak máš nastavený PUD v SFIOR
2) Pokud pracuješ s celým portem, pak PORTD=0xFF
3) Změň čtení z PIND
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
JirkaRCK



Založen: Apr 25, 2010
Příspěvky: 226
Bydliště: Olomouc/Brno

PříspěvekZaslal: čt leden 16 2014, 12:32    Předmět: Citovat

Při dalších pokusech mi nakonec Atmega přestala komunikovat po ISP, tak jsem koupil jinou a u té všechno funguje. Takže byl buďto problém s PUD, jak říkáš, nebo byla už před tím částečně v háji. Někdy ji zkusím vyresetovat přes paralelní programování a zkusím, co to udělá. Díky za odpověď.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
AB1



Založen: Nov 23, 2009
Příspěvky: 312

PříspěvekZaslal: čt leden 16 2014, 12:42    Předmět: Citovat

citace:
DDRD = 0; //vstupní
PORTD= 1; //Připojí Pull=Upy

while(1)
PORTB=PORTD;

Zapisujeme do PORTx, čteme z PINx.

kód:
DDRD = 0; //vstupní
PORTD= 255; //Připojí Pull=Upy
DDRB=255; // portb je výstupní
while(1)
      PORTB=PIND;
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Celeron



Založen: Apr 02, 2011
Příspěvky: 17888
Bydliště: Nový Bydžov

PříspěvekZaslal: čt leden 16 2014, 19:51    Předmět: Citovat

Když chceš přes port zapisovat i číst nastřídačku, musíš před čtením do portu nějakým způsobem zapsat a nebo nastavit FFH. Platí to u kupy jednočipů. Představ si to jako že každej bit portu má "záchytnej D klopák", kterej se mění instrukcema typu OUT. Při instrukcích typu IN podle jejich typu čteš buď záchytnej klopák a nebo přímo fyzickou nohu švába. Má to 2 úskalí, pokud byla někdy předem do D klopáků zapsaná nula, tak IN nejde, musí se do D klopáků zapsat 1. Na druhou stranu, pokud bys četl přímo nohu portu zatíženou třeba přechodem BE posilujícího tranzistoru, byly by špatně logický úrovně na noze portu a četl bys stále 0. Tohle platí u Intel 51 i Atmel 51 řady a u jiných to bude podobný. Chce to si načíst, jak jsou u konkrétního typu porty řešený.
Jirka
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
AB1



Založen: Nov 23, 2009
Příspěvky: 312

PříspěvekZaslal: čt leden 16 2014, 21:17    Předmět: Citovat

Celeron:
citace:
Tohle platí u Intel 51 i Atmel 51 řady a u jiných to bude podobný.
Určitě to myslíš dobře, ale radši ho nepleť.
U Avr je to úplně jinak.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
JirkaRCK



Založen: Apr 25, 2010
Příspěvky: 226
Bydliště: Olomouc/Brno

PříspěvekZaslal: pá leden 17 2014, 10:53    Předmět: Citovat

Děkuji všem za komentáře. Jak jsem poprvé jásal, neměl jsem pravdu. "Fungovalo" to, protože jsem měl slabý napájecí zdroj a vstupní pin měl v mém kódu resetovat binární hodiny (poklesem napětí se zresetoval celý procesor, takže to plnilo svou úlohu, pin ale ve zkutečnosti nefungoval). Smile Vše vyřešilo čtení z PIND. Už mi to nádherně jede.

Teď už je mi vše jasné. Jsem poněkud rozladěn, že jsem čtení z PORTD viděl v několika na sobě nezávislých návodech pro začátečníky. Dost mě to naštvalo. Dnes má každej potřebu psát na internet a dělat chytráka a není si schopnej ani pořádně ověřit funkčnost svého kódu... Rolling Eyes
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra.
Nemůžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Nemůžete připojovat soubory k příspěvkům
Můžete stahovat a prohlížet přiložené soubory

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.16 sekund