Anonymní profil DragonSoul – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil DragonSoul – Programujte.comAnonymní profil DragonSoul – Programujte.com

 

Příspěvky odeslané z IP adresy 62.177.99.–

Dragonsoul
Mikrokontroléry › Bezdratovy prenos Videa. Jak…
12. 6. 2010   #130128
DragonSoul
Mikrokontroléry › robotis cm5 control module w…
16. 4. 2010   #127117

Pokud mas AVR studio, tak staci nainstalovat jeste WINAVR a potom zmacknout F7 a ejhle v adresari projektu vznikne hex soubor, ktery uz nahrajes do uC jednim z vyse uvedenych kroku.
Podle toho jaky mas programator, tak to jde bud primo z AVR studia, nebo pokud chces rychle neco nahrat a necekat az prijde postou programator, tak jde zbastlit LPT ISP programator (zadej do googlu) 4 draty, 4 odpory a LPT konektor (pokud mas na pocitaci LPT) a pote lze nahrat SW do uC pres Ponyprog2000 (Windows XP)

DragonSoul
Mikrokontroléry › ATMEGA16 paměť
22. 3. 2010   #125656

Aby si nemusel pouzivat gooooogle :smile3:




#define F_CPU 8000000UL

#include <avr/io.h>
#include <avr/eeprom.h>
#include <util/delay.h>
#include "lcd.h"

uint16_t EEMEM eepromword=1500;
unsigned int servo;


int main(void)
{
uint16_t RAMword;
for (;;)
{
RAMword = eeprom_read_word(&eepromword);
servo=25;
eeprom_write_word(&eepromword,servo);
}



DragonSoul
Mikrokontroléry › AVR a LCD displej
22. 3. 2010   #125655

No nevim jak se v menu pohybujes nahoru dolu, spise bych udelal tlacitka dolu, nahoru OK a zpet.
Listujes seznamem dolu nahoru a dalsi uroven dosahnes tlacitkem OK, tlacitkem zpet se vratis.
Kdyz uz nejde dale tlacitkem OK, znamena to, ze jsi v nejake polozce, ktera jde editovat a nahoru dolu bych inkrementoval/dekrementoval hodnotu.
Pokud se stiskne OK, hodnota se ulozi do EEprom, kde to zustane i kdyz to vypnes/zapnes.
Udelat viceurovnove menu je docela slozite, pokud nevis kolik je urovni, ale pokud vis napr. ze je max. 3-urovne, da se udelat treba pres pole.
Ale s efektivitou bych si nedela hlavu, pokud se to vejde do pameti, kdyz uz se to nevejde, prekopam program jinak.
Vyvojovy diagram mi nejde otevrit

DragonSoul
Mikrokontroléry › AVR a LCD displej
21. 3. 2010   #125594

Nevim jestli to pomuze, protoze nepises co pouzivaz za LCD
Mam uC AtMega8, LCD pouzivam MC0802A-SYL/H
Stahnul jsem si knihovnu pro praci s LCD z http://jump.to/fleury.
Prodratovano je to tak ze pro komunikaci pouzivam PORTD, D0-3 mam nadratovane na PORTD0-3 a zbyvajici piny R/S, R/W a E jsou nadratovane na PORTD 5,6,7, samozrejme napajeni LCD a podsviceni dle datasheetu
Potom je treba upravit v lcd.h kousek programu takto:



#define LCD_PORT PORTD /**< port for the LCD lines */
#define LCD_DATA0_PORT LCD_PORT /**< port for 4bit data bit 0 */
#define LCD_DATA1_PORT LCD_PORT /**< port for 4bit data bit 1 */
#define LCD_DATA2_PORT LCD_PORT /**< port for 4bit data bit 2 */
#define LCD_DATA3_PORT LCD_PORT /**< port for 4bit data bit 3 */
#define LCD_RS_PORT LCD_PORT /**< port for RS line */
#define LCD_E_PORT LCD_PORT /**< port for Enable line */
#define LCD_RW_PORT LCD_PORT /**< port for RW line */
#define LCD_DATA0_PIN 0 /**< pin for 4bit data bit 0 */
#define LCD_DATA1_PIN 1 /**< pin for 4bit data bit 1 */
#define LCD_DATA2_PIN 2 /**< pin for 4bit data bit 2 */
#define LCD_DATA3_PIN 3 /**< pin for 4bit data bit 3 */
#define LCD_RS_PIN 5 /**< pin for RS line */
#define LCD_RW_PIN 6 /**< pin for RW line */
#define LCD_E_PIN 7 /**< pin for Enable line */

Program na zobrazeni textu potom vypada takto:


#define F_CPU 1000000UL


#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include "lcd.h"

unsigned char i;
unsigned int del=1000;

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

int main(void)
{
char buffer[8];
lcd_init(LCD_DISP_ON); //Inicializace LCD
lcd_clrscr(); //vymazani LCD
lcd_gotoxy(0,0); //nastaveni na pozici 0,0
lcd_puts("RoBoProG"); //vypsani textu
lcd_gotoxy(0,1);
lcd_puts("Run:");
for (i=3;i>0;i--)
{
sprintf(buffer,"%2i",i);
lcd_gotoxy(4,1);
lcd_puts(buffer);
_delay_ms(500);
}
}



Doufam ze jsem to tady moc nezaneradil

DragonSoul
Mikrokontroléry › Těžké začátky s ATMega8 a bl…
17. 11. 2009   #119462

Takže opravdu pomohli 2 věci.
a) Přidat do programu ješte PORTC=0xFF;
b) Vstup spínat s GND, což trochu nechápu, protože GND je vlastně 0V nebo ne?
Ale funguje to...
Děkuji za postrčení.

DragonSoul
Mikrokontroléry › Těžké začátky s ATMega8 a bl…
17. 11. 2009   #119461

Prosim muzete uvest nejaky priklad jak to nastavit.
Myslel jsem, ze kdyz nastavim
DDRC=0x00; Tak je to nastavene.
Programuji v AVR Studiu.
Zkousel jsem k tomu dat jeste
PORTC=0x00 nebo PORTC=0xFF ale ani jeden z toho nefunguje.
Dekuji

DragonSoul
Mikrokontroléry › Těžké začátky s ATMega8 a bl…
17. 11. 2009   #119459

Nejak se tam ten program zkopiroval 2x tak plati ten spodni... util delay tam byla jeste puvodne z blikani LED.

DragonSoul
Mikrokontroléry › Těžké začátky s ATMega8 a bl…
17. 11. 2009   #119458

Přeji příjemný den
Prosím o pomoc s jednoduchým prográmkem, který nefunguje, tak jak chci.
V případě že na PINC0 není 5V měla by svítit dioda na adrese PORTD0, když tam je 5V tak by měla svítit dioda na adrese PORTD1.
Ale zatím to funguje tak, že když tam není 5V tak svítí obě diody, a když tam je 5V tak zhasne dioda na adrese PORTD1.
Můžete mi pomoci odhalit chybu?
Mockrat dekuji

/* Program blikani LED*/

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


int main(void)
{
DDRC=0x00;
DDRD=0xFF;
while(1)
{
if (PINC & 0b00000001)
//Pokud je na PINC0 privedeno +5V
PORTD=0x01;
//Rosvit diodu na PortuD adresa 0
else
PORTD=0x02;
//Jinak rosvit diodu na PORTuD adresa 1

}

}/* Program blikani LED*/

#include <avr/io.h>


int main(void)
{
DDRC=0x00;
DDRD=0xFF;
while(1)
{
if (PINC & 0b00000001)
//Pokud je na PINC0 privedeno +5V
PORTD=0x01;
//Rosvit diodu na PortuD adresa 0
else
PORTD=0x02;
//Jinak rosvit diodu na PORTuD adresa 1

}
}

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý