nejde vstupny port
Moderátori: psichac, Moderátori
nejde vstupny port
mam na výstupe PD6 zapojenu LEDku, na PD7 mam zapojeny vypínač ,ked ho zopnem PD7 bude napojena na zem a tym pádom pul-up rezistor bude tiez na zem (to jest na PD7 bude logicka 0), PD7 ak je 0 tak blika LED ,opacnom pripade nebliká.... otázka znie prečo keď stlačím tlačítko nezačne blikať LEDka? niečom mi ušlo ? spinač som testoval je ok,ledka je dobre zapojena,,,
zdrojový kod:
#include <avr/io.h>
#include <util/delay.h>
int main(){
// PD7 ako vstupný pin ostatné ako výstupne
DDRD = 0b01111111;
PORTD |= (1 << PD7); // zapnutie pull-up rezistora na PD7
// nekoneèná sluèka
while(1){
if ((PIND & (1<<PD7)) == 0 ){ // ak je PD7 nulový
PORTD |= (1 << PD6); // rozsvie LED
_delay_ms(200); // poèkaj 200ms
PORTD &= ~(1 << PD6); // zhasni LED
_delay_ms(200); // poèkaj 200ms
}
}
return 0;
}
zdrojový kod:
#include <avr/io.h>
#include <util/delay.h>
int main(){
// PD7 ako vstupný pin ostatné ako výstupne
DDRD = 0b01111111;
PORTD |= (1 << PD7); // zapnutie pull-up rezistora na PD7
// nekoneèná sluèka
while(1){
if ((PIND & (1<<PD7)) == 0 ){ // ak je PD7 nulový
PORTD |= (1 << PD6); // rozsvie LED
_delay_ms(200); // poèkaj 200ms
PORTD &= ~(1 << PD6); // zhasni LED
_delay_ms(200); // poèkaj 200ms
}
}
return 0;
}
0
- boraicho
- Ultimate člen
- Príspevky: 12451
- Dátum registrácie: 03 Feb 2007, 00:00
- Bydlisko: Prešov
- Vek: 35
- Kontaktovať používateľa:
Re: nejde vstupny port
škoda že tym blbym AVRkovim zapisom nerozumiem ale napisal by som to takto
take jednoduche
main()
{
...
while
{
while(PD7==0)
{
PD6=1;
_delay_ms(200);
PD6=0;
_delay_ms(200);
}
PD6=0;
}
}
take jednoduche
main()
{
...
while
{
while(PD7==0)
{
PD6=1;
_delay_ms(200);
PD6=0;
_delay_ms(200);
}
PD6=0;
}
}
0
"Aj nevinne vyzerajúca súčiastka, môže byť príčinou nefunkčnosti zariadenia a tou kondenzator 100% je"
3D REBEL II + PLA + PETG
CNC 1810 na DPS
3D REBEL II + PLA + PETG
CNC 1810 na DPS
-
- Ultimate člen
- Príspevky: 2355
- Dátum registrácie: 25 Jún 2013, 21:06
- Bydlisko: Krajné
- Vek: 57
- Kontaktovať používateľa:
Re: nejde vstupny port
boraicho: Takéto niečo na AVR nefunguje. AVR nevie bitovo adresovať. PD7 je konstanta 7 (rovnako aj PB7 = 7). Je to len hodnota poradového čísla bitu v registri. Preto sa to maskuje pomocou tej narotovanej jednotky. Navyše port má dva registre jeden pre výstup PORTD a druhý pre vstup PIND. Nemohol by si preto použiť PD7 ako podmienku toho while.
jedi: Na tom kóde nie je žiadna chyba. Skúsil som to iba v simulátore a beží to. Takže jediné čo ma napadá že to bliká moc rýchle a nevidíš blikanie. Skús iba toto:
Bez stlačenia je LED zhasnutá. Pri stlačení sa rozsvieti.
jedi: Na tom kóde nie je žiadna chyba. Skúsil som to iba v simulátore a beží to. Takže jediné čo ma napadá že to bliká moc rýchle a nevidíš blikanie. Skús iba toto:
Kód: Vybrať všetko
while(1){
if ((PIND & (1<<PD7)) == 0 ){ // ak je PD7 nulový
PORTD |= (1 << PD6); // rozsvie LED
} else {
PORTD &= ~(1 << PD6); // zhasni LED
}
}
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
- boraicho
- Ultimate člen
- Príspevky: 12451
- Dátum registrácie: 03 Feb 2007, 00:00
- Bydlisko: Prešov
- Vek: 35
- Kontaktovať používateľa:
Re: nejde vstupny port
ja viem, ved pišem že tym blbym AVRkovim zapisom nerozuiem , ale predsa nevyzera ten kod pre PIC krajšie a jednoduchšie? lebo čo som si všimol tak začiatočnici s AVR sa učia s nim pracovať , niekoľko nasobne dlhšie ako s PIC a tu je nadherny priklad že je problem spraviť obyčajny blikač s led
0
"Aj nevinne vyzerajúca súčiastka, môže byť príčinou nefunkčnosti zariadenia a tou kondenzator 100% je"
3D REBEL II + PLA + PETG
CNC 1810 na DPS
3D REBEL II + PLA + PETG
CNC 1810 na DPS
-
- Stály člen
- Príspevky: 175
- Dátum registrácie: 25 Apr 2010, 00:00
- Vek: 12
Re: nejde vstupny port
Ach jaj boraicho.... Google nas vsemohuci ti mozose s hocicim, staci dat spravne frazy
..dufam ze na hodine matematiky si nenadaval pani ucitelke, ked Vas ucila malu nasobilku pocitat v zosite,a nepovedal si jej, ze ty mas kalkulacku s ktorou to vyp...citas rychlejsie a lahsie ako zbytok triedy
...existuju aj makra, ktore sa na toto daju vcelku jednoducho pouzit. Ci si ich napise, alebo si natuka http://www.avrfreaks.net kde najde vsetko. Alebo si zozenie tonu literatury aj v CZ/SK.
..dufam ze na hodine matematiky si nenadaval pani ucitelke, ked Vas ucila malu nasobilku pocitat v zosite,a nepovedal si jej, ze ty mas kalkulacku s ktorou to vyp...citas rychlejsie a lahsie ako zbytok triedy
...existuju aj makra, ktore sa na toto daju vcelku jednoducho pouzit. Ci si ich napise, alebo si natuka http://www.avrfreaks.net kde najde vsetko. Alebo si zozenie tonu literatury aj v CZ/SK.
Kód: Vybrať všetko
#define bit_get(p,m) ((p) & (m))
#define bit_set(p,m) ((p) |= (m))
#define bit_clear(p,m) ((p) &= ~(m))
#define bit_flip(p,m) ((p) ^= (m))
#define bit_write(c,p,m) (c ? bit_set(p,m) : bit_clear(p,m))
#define BIT(x) (0x01 << (x))
0
Re: nejde vstupny port
to boraicho:
pises, ze blbe AVRka .. No ja tiez tieto MCU neprogramujem, ale nie je to take blbe ako keby sa zdalo. Pretoze PIC pouziva svoje vlastne C kompilery, ktore su nestandardne Cko (napr. tie konstanty , alebo podpora zapisu binarneho cisla). Ja ked som tiez zacinal s Cko s PIC, tak som bol nadseny, ze ako sa da v tom jednoducho programovat, lenze teraz zistujem, vdaka tejto jednoduchosti, su moje stare programy vobec nekompatibilne s inymi kompilermi (napr. pre STM8/32 MCU)...
Takze "preportovavanie" uz je trosku zlozitejsie ako len prepisat nejake periferia a pod., ale na druhej strane, keby som tieto nestandardne veci nepouzival (uz je neskoro), tak by boli kompatibilne programi.
pises, ze blbe AVRka .. No ja tiez tieto MCU neprogramujem, ale nie je to take blbe ako keby sa zdalo. Pretoze PIC pouziva svoje vlastne C kompilery, ktore su nestandardne Cko (napr. tie konstanty , alebo podpora zapisu binarneho cisla). Ja ked som tiez zacinal s Cko s PIC, tak som bol nadseny, ze ako sa da v tom jednoducho programovat, lenze teraz zistujem, vdaka tejto jednoduchosti, su moje stare programy vobec nekompatibilne s inymi kompilermi (napr. pre STM8/32 MCU)...
Takze "preportovavanie" uz je trosku zlozitejsie ako len prepisat nejake periferia a pod., ale na druhej strane, keby som tieto nestandardne veci nepouzival (uz je neskoro), tak by boli kompatibilne programi.
0
Naposledy upravil/-a vama v 08 Sep 2013, 10:21, upravené celkom 1 krát.
"Digitálna technika pozostáva len z 0 a 1, ktoré sú v správny čas na správnom mieste." M. Valášek
- boraicho
- Ultimate člen
- Príspevky: 12451
- Dátum registrácie: 03 Feb 2007, 00:00
- Bydlisko: Prešov
- Vek: 35
- Kontaktovať používateľa:
Re: nejde vstupny port
marek... je pravda že som mal jediny v triede kalkulačku v hodinkach ale s matematiky som inak tupý.
vama super, STM su ine procesory hejže, a pisať program tak aby bol kompatibilný pre hocjake procesory, kde ho nahram, tam to pojde, no neviem, nepači sa mi tato myšlienka.
vama super, STM su ine procesory hejže, a pisať program tak aby bol kompatibilný pre hocjake procesory, kde ho nahram, tam to pojde, no neviem, nepači sa mi tato myšlienka.
0
"Aj nevinne vyzerajúca súčiastka, môže byť príčinou nefunkčnosti zariadenia a tou kondenzator 100% je"
3D REBEL II + PLA + PETG
CNC 1810 na DPS
3D REBEL II + PLA + PETG
CNC 1810 na DPS
Re: nejde vstupny port
ono ja myslim trosku inu kompatibilitu,
Samozrejme, ze ked napises program pre jeden MCU a pre ten druhy typ ti nepojde.
Ibaze je rozdiel, ked v tomto programe prepises, len obsluhu periferii (nizsiu vrstvu) a potom ti uz pojde program aj na inom type MCU. Lenze ked napises v nestandardnom Cku ten program, tak uz musis aj vyssiu vrstu prepisovat (napr. prevod cisla, dekodovanie, ...).
Samozrejme, ze ked napises program pre jeden MCU a pre ten druhy typ ti nepojde.
Ibaze je rozdiel, ked v tomto programe prepises, len obsluhu periferii (nizsiu vrstvu) a potom ti uz pojde program aj na inom type MCU. Lenze ked napises v nestandardnom Cku ten program, tak uz musis aj vyssiu vrstu prepisovat (napr. prevod cisla, dekodovanie, ...).
0
"Digitálna technika pozostáva len z 0 a 1, ktoré sú v správny čas na správnom mieste." M. Valášek
-
- Ultimate člen
- Príspevky: 2355
- Dátum registrácie: 25 Jún 2013, 21:06
- Bydlisko: Krajné
- Vek: 57
- Kontaktovať používateľa:
Re: nejde vstupny port
Pozrel som si blikanie s led pre PIC. Čo bolo v asm mi nepripadalo o nič jednoduchšie ako pre AVR čo bolo v C tak tam bola takáto konštrukcia.
Čo je teda dosť neštandartné. Tiež som zistil že PIC nevie bitovo adresovať. Má úplne rovnakú filozofiu ako AVR. Takže celé to tvoje pohodlie ti robí kompilátor tak, že o tom ani nevieš čo sa vo vnútri deje. Niekomu to tak vyhovuje, niekomu nie.
Môj tvrdenie je že či AVR alebo PIC je úplne jedno. Tu išlo o radu na konkrétny problém a nie začať flame.
Kód: Vybrať všetko
// Define LED @ RC0
sbit LED at RC0_bit;
Môj tvrdenie je že či AVR alebo PIC je úplne jedno. Tu išlo o radu na konkrétny problém a nie začať flame.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
Re: nejde vstupny port
PETERPLE: nefungieren :/ ,niekde musim robiť chybu,keď tebe to ide to znamena že by bolo niečo zle zapojene??
Keď na to pozeram vypada to byť ok, obrazok ako som to zapojil je dole ,ps. keď som mal ledku na PD7 a bol pin nastaveny ako výstup a dal som blikať tak ledka blikala,len ten vstup mi niakosi nejde,,,
Keď na to pozeram vypada to byť ok, obrazok ako som to zapojil je dole ,ps. keď som mal ledku na PD7 a bol pin nastaveny ako výstup a dal som blikať tak ledka blikala,len ten vstup mi niakosi nejde,,,
0
- Peťus
- Ultimate člen
- Príspevky: 3940
- Dátum registrácie: 07 Mar 2009, 00:00
- Bydlisko: Praha
- Vek: 34
- Kontaktovať používateľa:
Re: nejde vstupny port
Boraicho: spíš bude chyba na jiné straně
pokud použiješ kompilátor z CodeVision, tak tam tyhle vychytávky jsou (makra)
To že většina používá avr-gcc a ten toto v základu nemá, neznamená, že AVRka jsou blbý...
pokud použiješ kompilátor z CodeVision, tak tam tyhle vychytávky jsou (makra)
To že většina používá avr-gcc a ten toto v základu nemá, neznamená, že AVRka jsou blbý...
0
https://chiptron.cz - novinky ze světa elektro (Arduino, Raspberry Pi, STM32, ESP8266, ESP32,...)
-
- Ultimate člen
- Príspevky: 2355
- Dátum registrácie: 25 Jún 2013, 21:06
- Bydlisko: Krajné
- Vek: 57
- Kontaktovať používateľa:
Re: nejde vstupny port
v zapojení tiež chybu nevidím. Skús tam ten kód čo som poslal.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
- Peťus
- Ultimate člen
- Príspevky: 3940
- Dátum registrácie: 07 Mar 2009, 00:00
- Bydlisko: Praha
- Vek: 34
- Kontaktovať používateľa:
Re: nejde vstupny port
zkus tohle:
if(!(PIND&(1<<PD7))) <- test tlačítka
if(!(PIND&(1<<PD7))) <- test tlačítka
0
https://chiptron.cz - novinky ze světa elektro (Arduino, Raspberry Pi, STM32, ESP8266, ESP32,...)
Re: nejde vstupny port
PETERPLE: skušal a nejde to , nvm si to vysvetliť prečo,chybu nevypiše ,zapojenie vyzera ok, tak nvm ...
0
-
- Ultimate člen
- Príspevky: 2355
- Dátum registrácie: 25 Jún 2013, 21:06
- Bydlisko: Krajné
- Vek: 57
- Kontaktovať používateľa:
Re: nejde vstupny port
daj sem ten hex čo tam páliš
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
- boraicho
- Ultimate člen
- Príspevky: 12451
- Dátum registrácie: 03 Feb 2007, 00:00
- Bydlisko: Prešov
- Vek: 35
- Kontaktovať používateľa:
Re: nejde vstupny port
pisal som niekde že AVRka su blbe?Peťus napísal:neznamená, že AVRka jsou blbý...
viem že sa programovanim procesorov nikdy živiť nebudem, a tak si to nepotrebujem zbytočne sťažovať.
0
"Aj nevinne vyzerajúca súčiastka, môže byť príčinou nefunkčnosti zariadenia a tou kondenzator 100% je"
3D REBEL II + PLA + PETG
CNC 1810 na DPS
3D REBEL II + PLA + PETG
CNC 1810 na DPS
- Peťus
- Ultimate člen
- Príspevky: 3940
- Dátum registrácie: 07 Mar 2009, 00:00
- Bydlisko: Praha
- Vek: 34
- Kontaktovať používateľa:
Re: nejde vstupny port
máš správně zapojený mikroprocesor? reset, napájení a tak?
0
https://chiptron.cz - novinky ze světa elektro (Arduino, Raspberry Pi, STM32, ESP8266, ESP32,...)
Re: nejde vstupny port
peterple: pridávam ten hex subor .
- Prílohy
-
- bitoveOperacie.hex
- (279 Bajtov) 27 stiahnutí
0
-
- Podobné témy
- Odpovedí
- Zobrazení
- Posledný príspevok
-
- 9 Odpovedí
- 1073 Zobrazení
-
Posledný príspevok od používateľa pocitujlasku
-
- 22 Odpovedí
- 4630 Zobrazení
-
Posledný príspevok od používateľa balu
-
- 6 Odpovedí
- 1566 Zobrazení
-
Posledný príspevok od používateľa pocitujlasku
-
- 12 Odpovedí
- 2148 Zobrazení
-
Posledný príspevok od používateľa jezevec
-
- 20 Odpovedí
- 3371 Zobrazení
-
Posledný príspevok od používateľa budvar10