forum.mcontrollers.com - hlavní stránka forum.mcontrollers.com - fórum

 

.: fórum - hlavní stránka :.
Technology Stronghold by Rudolf Vesely
How to build Microsoft System Center hosted cloud series
FAQFAQ HledatHledat Seznam uživatelůSeznam uživatelů Uživatelské skupinyUživatelské skupiny RegistraceRegistrace
ProfilProfil StatistikaStatistika Soukromé zprávySoukromé zprávy PřihlášeníPřihlášení

 
příkaz pro zapnutí 1 pinu - program

 
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> Jiné mikrokontroléry, procesory, hradla
 
CellarDoor
Anonymní





PříspěvekZaslal: 07 březen 2016, 20:14    Předmět: příkaz pro zapnutí 1 pinu - program Citovat

Zdravím nejsem si jist, zadli jsem název napsal správně. Stáhl jsem si pár kódů, ale nedaří se mi přijít nato, jak se určí pin, který se má zapnout. Jendná se konkrétně o ATmegu8

přiložím krátký kód, nekonečné blikání led
kód:
#define F_CPU 1000000

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
  DDRC = 0xFF;
  while(1) 
  {
    PORTC = 0xFF;
    _delay_ms(1000);
    PORTC = 0x00;
    _delay_ms(1000);
    }
}


PORTC = 0xFF; //tohle přivede VCC na všechny porty C
jak by to vypadalo, aby to přivedlo VCC jen na port třeba C3? to by měl být pin 26
a jak by to vypadalo, kdyby to mělo přivést VCC na port C3 a zároveň i na port D3?

Chtěl bych si zkusit naprogramovat jeden sedmisegmentový display, tak aby zobrazoval od 0 až do 9 se spožděním 1sec. Bohužel nechápu zapínání jednotlivých pinů.

Díky za ochotu a pomoc.
Návrat nahoru
 

 
stanleyv
Profesionál
Profesionál


Založen: 5.3.2008
Příspěvky: 157

PříspěvekZaslal: 08 březen 2016, 7:18    Předmět: Citovat

Takže za 1.) ATmega8 je procesor z rodiny AVR (výrobca ATMEL, dnes už MICROCHIP) a pre túto rodinu tu je vytvorená téma, nepatrí do tejto , poprosím adminov o presun do správnej .......

A ZA 2.)

PIN C3 nastavíš tak, že zapíšeš jednotku len priamo na PIN C3.
kód:
 PORTC |= (1<<PC3)     //nastaví PIN C3 do log1


Pre port D to je adekvátne, len pracuješ s portom D:
kód:
PORTD |= (1<<PD3)      //nastaví PIN D3 do log1
- samozrejme musí byť nastavený ako výstupný.

K portu C (alebo D) pripočítaš logickým súčtom 1 na danom PINe, pričom ti to neovplivní ostatné PINy daného portu.

Pre nulovanie to je podobné:

kód:

PORTC &= ~(1<<PC3);          //nastaví PIN C3 do log0
PORTD &= ~(1<<PD3);          //nastaví PIN D3 do log0


Port (C alebo D) vynásobíš bitovým násobkom, kde všetky bity budú v log 1, iba bit, ktorý potrebuješ vynulovať bude v log 0.


Toto sú základy bitových operácii v jazyku C. Odporúčam naštudovať základy jazyka C napríklad v knihe od HEROUTa......
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
CellarDoor
Anonymní





PříspěvekZaslal: 08 březen 2016, 11:42    Předmět: Citovat

Díky moc, pěkně vysvětlený Smile

Příště už to snad hodím do správné kategorie
Návrat nahoru
 

Zobrazit příspěvky z předchozích:   
Zobrazit předchozí téma :: Zobrazit následující téma  
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> Jiné mikrokontroléry, procesory, hradla Časy uváděny v GMT + 2 hodiny
 
Strana 1 z 1
Přejdi na:  
Můžete přidat nové téma do tohoto fóra.
Můž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.
Můžete k příspěvkům připojovat soubory
Můžete stahovat a prohlížet přiložené soubory
 



Num Lock Holder - app to hold Numlock
Copyright © 2017 Rudolf Veselý, mcontrollers.com.
Je zakázáno používat části tohoto webu bez souhlasu autora. || Powered by phpBB © 2001, 2002 phpBB Group - with RedSquare DoubleJ(Jan Jaap)