Ano,
připojil jsem to k portu 23 (PC0) na ATmega8, ale nefunguje
zde fragment programu:
Config Adc = Single , Prescaler = Auto
Start Adc
Channel = 0
Do
A = Getadc(channel)
X = 4.8875 * A
A = X
ja nechapu, kam mam pripojit proměnný výstup z potenciometru, na který adc? ADC.0,1,2,3,4,5?
Nikde to totiž nejde, alespon si myslim, ze to nejde, definovat, zda ADC.0 nebo ADC.1 atd....
V simulatoru bascomAVR mam jezdce, kterym menim hodnotu ADC, vše funguje, pak zapnu mikrocip, na jehoz vstupu ADC.0 mam potenciometr a nic nefunguje, prosim Vás o pomoc KIIV...
Příspěvky odeslané z IP adresy 77.48.5.–
Programově si to ošetřím, doufám...jen se teď jedná o měření odporu potenciometru připojeného na ATmega8
Dobrý den,
prosím Vás o radu.
Nikde, ale opravdu nikde jsem nenašel, jak k ATmega8 připojit potenciometr například k pinu C.0 což je AD převodník.
Prosím Vás o radu, kde bych mohl najít elektronické schéma, jak potenciometr připojit, abych mohl snímat hodnotu jeho odporu.
Děkuji moc.
Tak mám tento program: když ho zkusím v simulátoru, vše krásně funguje, jakmile ho nahraju do čipu, LEDKY blikají jak pomatené.... prosím POMOOOOOC
$regfile = "m8def.dat"
Config Portc = Output
Config Portd = Input
Tlacitko Alias Pind.6
Do
If Tlacitko = 0 Then
Waitms 10
If Tlacitko = 0 Then Gosub Navesti3
Else
Portc.1 = 0
Portc.0 = 0
End If
Loop
Navesti3:
Portc.1 = 1
Portc.0 = 1
Return
Ano, zákmitem myslím to, že mi bliká ledka.... i když nezmáčknu tlačítko....
A co myslíte s tím krystalem....můžu testovat a zapojovat čip bez něj?
Nezpůsobuje tyto chyby krystal...respektive to, že ho nepoužívám?
V tom C právě není žádná eliminace zákmitu...
a přesto se LED rozsvítí pouze pokud zmáčku tlačítko a zhasne, pokud pustím tlačítko.....
a v tom bascomu se úplně jasně projevuje zákmit tlačítka..
právě to nechápu...
že u každého jazyka se to chová jinak, to by přece nemělo mít vůbec vliv...programové prostředí....
A musím mít zapnutý v obvodu krystal? Dělám vše bez něj, je to tak taky možné provádět, testovat a zapojovat?Bez krystalu?
Nemá krystal na zákmit vliv?
Děkuji KIIV
Dobrý den přátelé, prosím Vás o pomoc:
Když má program v céčku:
void main (void)
{
PORTC=0x01;
DDRC=0x01;
PORTD=0x40;
DDRD=0x00;
while (1)
{
if ((PIND & 0x40) == 0)
PORTC |= 0x01;
else PORTC &=0xFE;
};
}
vše funguje správně, tlačítko a obvod zkrátka eliminuje zákmity tlačítka...
Pokud stisknu, dioda svítí, pokud sundám prst sz tlačítka, dioda nesvítí...
a
v bascomu:
$regfile = "m8def.dat"
' $crystal = 8000000
Config Portc = Output
Config Portd = Input
Tlacitko Alias Pind.6
Do
If Tlacitko = 0 Then
Waitms 300
Portc.1 = 1
Portc.0 = 1
Else
Portc.1 = 0
Portc.0 = 0 ' prodleva 500 msec
End If
Waitms 100
Loop
End
v tomto programu jsou jasně znatelné zákmity tlačítka...nechápu, v céčku vše funguje v pohodě, v bascomu vůbec....
nevím si rady, jak to v bascomu vyřešit, prosím Vás o pomoc....
Může být problém v tom, že v zapojení obvodu nepoužívám krystal? Dělám na ATmega8 ... že by v tomto bascom a céčko byly jiné?
Prosím Vás o radu
KIIV, díky, ano, vše vyřešeno:
http://www.kvetakov.net/clanky/avr/27-svitime-s-led-ii.html
můžu se konečně jít učit...a nepálit obvody....díky moc za pomoc....funguje to.....
perfektní a logické teď už....
Proč definuju port PB4? ... pouzivam ten pro zapojeni ke spinaci?
A pak input na PB2? ... nebo tento ke spinaci, proc resim oba PB4 a PB2...chci jednu diodu k jednomu pinu.....
Pak je tam port D ...ale jaké číslo PINU ATmegy mám zpojit na LEDKU?
KIIV... moc jsi mi tímto nepomohl...už jsem prošel tolik stránek, že se zeptám, zda o nějakém dobrém pomocníkovi v podobě publikace, či internetové stránky nevíte? K ATmega8 a tutorialu k tomuto čipu... protože cestou tohoto fora bych asi zesedivel...
A znicil pripadne dalsi soucastky....kdyby se jednalo o php, kde clovek nic nezkazi, ale tady se jedna i o penize...
diky za pochopeni
nikde jsem nenasel nic, akorat toto:
#define LED PORTD // Define LED on 8 bits PORTD
na jakem portu D ma byt dioda, na jakem cisle?
#define F_CPU 16000000UL // Define software reference clock for delay duration
// Must be write before call delay.h
#include <avr/io.h>
#include <util/delay.h>
#define SWT PB4 // Define switch pin on PB4
#define LED PORTD // Define LED on 8 bits PORTD
int main(void) {
int x = 0 ;
DDRB &= ~(1<<SWT); // Set input direction on SWT (PB2) *1
DDRD = 0xFF; // Set output direction on PORTB
for (;;) // Endless loop
{
if (bit_is_clear(PINB, SWT)) // Read SWT pin (if SWT pressed, do the loop one time)
{
LED = x; // show 8 leds x value
x++; // x + 1
if ( x > 255 ) x = 0 ; // when 256 return to 0
_delay_ms (500); // blinking delay
}
}
return 0;
}
jak zapojit ledku a spinac , na jake porty?
Prosím o pomoc..
1)
na jaký PIN ATmega8 , na které její PINY můžu připojit obyčejné tlačítko?
2)
Jakým způsobem v jazyce C, kterým příkazem prosím ošetřím podmínku...pokud je tlačítko sepnuto, rozsviť diodu....
Děkuji
Tak, už to funguje, bylo to nastavením optimalizace z O2 je teď 01 v makefile a jede to jako po masle...dekuji vsem za pomoc
Tak, teď jsem zkoušel tento program:
a nic se neděje..dioda nesvítí i když jsem upravil == na =
Prosím o raduuuu
#include <avr/io.h>
void stop()
{
while (1);
}
void main()
{
DDRB |= _BV(PB0);
PORTB = 0xFE;
stop();
}
s tim delay ano, ale neni to profi, ted zkousim neco jako:
#include <avr/io.h>
void stop()
{
while (1);
}
void main()
{
_BV(PB0)==0xFE;
stop();
}
ale nejde to, i kdyz vyndam jeden z tech radku, tak to nejde....chjo
NETmane, ahoj, děkuji....
no...nedela to nic, nesviti, neblika, nic...
tento program mi blika s diodou, to je ok:
#include <avr/io.h>
void delay(unsigned int num)
{
unsigned int i,j;
for (j = 0; j < 1000; j++)
for (i = 0; i < num; i++)
;
}
int main (void)
{
DDRB |= _BV(PB0); // DDR = "Data Direction Register"
while (1)
{
PORTB &= ~(_BV(PB0));
delay(500);
PORTB |= _BV(PB0);
delay(500);
}
return 0;
}
ale jak to udelat, aby dioda jen a stale svitila, prosim moc moc o Radu.....
dekuji
Dobrý večer, prosím Vás o radu:
Mám tento program, který má pouze svítit s diodou, ne blikat, pouze svítit.
Nefunguje mi to, poradí mi prosím někdo?
#include <avr/io.h>
void delay(unsigned int num)
{
unsigned int i,j;
for (j = 0; j < 1000; j++)
for (i = 0; i < num; i++)
;
}
int main (void)
{
DDRB == _BV(PB0); // DDR = "Data Direction Register"
PORTB == ~(_BV(PB0));
}
Děkuji
bony
Dusiku...ano, tam se ale neřeší problém, který řeším...s tím, že ledka pouze svítí..
na jiném fóru jsem našel tohle řešení, ale nerozumím mu, pomůže mi prosím někdo, jak mám nastavit NISSI optimalizaci ve WINavr?
Moc Vam dekuji za Vase rady uz vse funguje jak ma nastavil jsem v souboru mfile nissi optimalizace a program jede.
Tak doufam ze budou fungovat i ostatni.
Jeste jednou Vsem diky za pomoc.
Zde dukaz, ze program byl nahran v poradku:
Pouzivam napeti 5V
uz jsem zkousel o neco mensi i o neco vetsi....
Dioda stale jen sviti...
Myslite, ze muze byt problem s natavenim frekvence? Nebo, že následující program není v pořádku?:
#include <avr/io.h>
void delay(unsigned int num)
{
unsigned int i,j;
for (j = 0; j < 1000; j++)
for (i = 0; i < num; i++)
;
}
int main (void)
{
DDRB |= _BV(PB0); // DDR = "Data Direction Register"
while (1)
{
PORTB &= ~(_BV(PB0));
delay(500);
PORTB |= _BV(PB0);
delay(500);
}
return 0;
}
Zde make load, dukaz, ze nahrani programu je v poradku:
C:\smaz>make load
avrdude -p m8 -c stk200 -U flash:w:blink.hex
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9307
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "blink.hex"
avrdude: input file blink.hex auto detected as Intel Hex
avrdude: writing flash (108 bytes):
Writing | ################################################## | 100% 0.03s
avrdude: 108 bytes of flash written
avrdude: verifying flash memory against blink.hex:
avrdude: load data flash data from input file blink.hex:
avrdude: input file blink.hex auto detected as Intel Hex
avrdude: input file blink.hex contains 108 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 0.02s
avrdude: verifying ...
avrdude: 108 bytes of flash verified
avrdude: safemode: Fuses OK
avrdude done. Thank you.
Vím, že je tady vlákno, které řeší problematiku programátoru z robotiky cz, ovšem tohle je věc, kdy nefunguje software, prosím Vás o pomoc.
Dobrý večer přátelé.
Prosím Vás o pomoc. Postavil jsem si programátor podle robotiky cz, vše funguje, moc mi při jeho konstrukci pomohli webmasteři (jméno psát nebudu, protože se to nedělá).
Věc je taková:
Programátor nahraje krásně program
programátor:
http://robotika.cz/guide/blink/stk200.png
program, který nahrávám pro blikání LED:
http://robotika.cz/guide/blink/blink.c
program makefile
http://robotika.cz/guide/blink/Makefile
a když pak vše zapojím dle:
http://robotika.cz/guide/blink/cs
tak dioda jen svítí, nebliká, pouze svítí, jak je to prosím možné....
Snad je v pořádku, že zasílám také odkazy na robotiku cz...
Děkuji
pSvetr
V příloze je výpis z nahrávání programu do procesoru, používám WINAVR