Får inte avrdude att fungera [Fungerar!]

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
frejo
Inlägg: 496
Blev medlem: 21 april 2004, 21:43:01
Ort: Linköping

Inlägg av frejo »

Klart du kan fixa det i mjukvaran :)

Det du behöver göra är att skicka en pulsbreddsmodulerad signal till lysdioden. Dvs du skickar ett en snabb fyrkantspuls till lysdioden, så snabb att ögat inte hinner se blinkningarna. Sen ändrar du bara förhållandet mellan hur länge pulsen är +5v och hur länge den är 0v.

Det är samma princip som för att styra t.ex. rc-servon, så ta en titt här:
http://www.elektronikforumet.com/forum/ ... php?t=6311
Användarvisningsbild
speakman
Inlägg: 4838
Blev medlem: 18 augusti 2004, 23:03:32
Ort: Ånge

Inlägg av speakman »

Lite O/T iof, men du en intressant lösning på koden för att "släcka" varje bit.
Istället för att varje gång släcka föregående bit, och sedan tända nästa, så kan du ju bara sätta nästa värde med '=' så clearas ju föregående bit bort automatiskt.
Eller ännu enklare vore det att göra:

Kod: Markera allt

unsigned char n;

for(;;) {
    for(n = 0; n < 7; n++) {
        PORTB = 1 << n;
        _delay_loop_2(pausetime);
    }
}
Förstår att det bara är testkod, men kunde bara inte låta bli. :D

Mvh
speakman
MaggoT
Inlägg: 113
Blev medlem: 28 juli 2005, 16:48:27
Ort: Finland
Kontakt:

Inlägg av MaggoT »

Hehe, tack det var ju en aning smidigare faktiskt :)

Såhär blev koden för att köra fram och tillbaka:
(Har lagt in en kommentar med en fråga)

Kod: Markera allt

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

int main()
{
	uint16_t pausetime;
	pausetime = 7535;
	
	DDRB = _BV(PB0) | _BV(PB1) | _BV(PB2) | _BV(PB3) | _BV(PB4) | _BV(PB5) | _BV(PB6) | _BV(PB7);
	
	while(1)
	{
		unsigned char n;
		
		for(n=0; n<7; n++)
		{
			PORTB = 1 <<n; // Vad gör denna rad? Vad betyder "<<" ?
			_delay_loop_2(pausetime);
		}
		
		for(n=7; n>0; n--)
		{
			PORTB = 1 <<n;
			_delay_loop_2(pausetime);
		}
	}
	
	return(1);
}
frejo: Tack för tipset, men tyvärr är det rena grekiskan för mig :\ förstår inget av koden som postades där...

Angående problemet med att ha leds och parallellporten inkopplade samtidigt så har problemet kommit tillbaka. Jag kan inte ha leds inkopplade på PB5, PB6 och PB7 samtidigt som jag försöker köra in programmet, fast jag har flaggan -E noreset. Får följande felmeddelande:

Kod: Markera allt

avrdude: AVR Device not responding
avrdude: initialization failed, rc=-1
Double check the connections and try again, or use -F to override
this check.

avrdude done. Thank you.
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

'y = 1 << x' betyder: 'y = 1 skiftat vänster x bit'

1 << 0 = 1 (00000001)
1 << 1 = 2 (00000010)
1 << 3 = 4 (00000100)
1 << 4 = 8 (00001000)
osv.
MaggoT
Inlägg: 113
Blev medlem: 28 juli 2005, 16:48:27
Ort: Finland
Kontakt:

Inlägg av MaggoT »

Ok, tack.

Har suttit med näsan i skärmen nu i timtal och letat efter en lättförståelig nybörjarguide till AVR och PWM, men inte lyckats hitta något som jag förstår mig på :(
frejo
Inlägg: 496
Blev medlem: 21 april 2004, 21:43:01
Ort: Linköping

Inlägg av frejo »

Kan ju va så att det inte finns någon eftersom allting står i databladet.

Vet själv att jag hade lite problem i början men läser man bara databladet väldigt ingående ang. pwm-delen så står det exakt vilka register som ska ställas in.
När registrena sen har rätt värden går pwm-delen helt av sig själv.

edit:
hittade ett word-dokument där jag sammanställt registrena som man behöver pilla med, dom låg lite utspridda i databladet vilket gjorde det svårt att få en översikt.
Hit me

edit 2:
hittade även en pwm-demo som jag själv använt för att lära mig:
http://users.rcn.com/rneswold/avr/chexample.html
MaggoT
Inlägg: 113
Blev medlem: 28 juli 2005, 16:48:27
Ort: Finland
Kontakt:

Inlägg av MaggoT »

Tack så mycket! Skall läsa på och försöka prova mig fram :)
MaggoT
Inlägg: 113
Blev medlem: 28 juli 2005, 16:48:27
Ort: Finland
Kontakt:

Inlägg av MaggoT »

Verkar vara lite krångligt under linux.. har kompilerat om kärnan och fått /dev/parport0, men jag får bara "Device not responding". När jag pluggar kabeln i windows-laptopen fungerar dock allting ok så det verkar inte vara fel på kabeln..

Rättigheterna på /dev/parport0 är 666, dvs crw-rw-rw- så det borde heller inte vara något problem... Någon som har en aning?
Användarvisningsbild
Macce
Inlägg: 4301
Blev medlem: 29 maj 2003, 16:40:58

Inlägg av Macce »

Jag komplierade också om en ny kernel men orkar inte starta om datorn idag, får göra det imorrn och kolla om det fungerar för mig... :)
MaggoT
Inlägg: 113
Blev medlem: 28 juli 2005, 16:48:27
Ort: Finland
Kontakt:

Inlägg av MaggoT »

Okej, låt mig få veta hur det går :D
Användarvisningsbild
speakman
Inlägg: 4838
Blev medlem: 18 augusti 2004, 23:03:32
Ort: Ånge

Inlägg av speakman »

Låter som fel inställning i /etc/avrdude.conf tycker jag?
Funkar galant för mig.
Får du felet "device not responding" borde avrdude fått kontrollen över parallellporten iallafall.

Mvh
speakman
MaggoT
Inlägg: 113
Blev medlem: 28 juli 2005, 16:48:27
Ort: Finland
Kontakt:

Inlägg av MaggoT »

Precis vad jag funderade på.. dock vet jag inte vad som skulle vara fel..
Kommandot jag kör är:

avrdude -c bsd -p t2313

Har förövrigt inte ändrat någonting i avrdude.conf.
Kollade genom inställningarna för "bsd"-programmeraren, kopplingen stämmer bra med den jag byggt.. inställningarna för tiny2313 antar jag också att stämmer eftersom jag inte ändrat dom...
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

Koppla bort lysdioder och annat från SCK, MISO och MOSI, så att det bara är programmeraren som går till dessa tre pinnar.
MaggoT
Inlägg: 113
Blev medlem: 28 juli 2005, 16:48:27
Ort: Finland
Kontakt:

Inlägg av MaggoT »

Det är så jag har testat..
Endast +5v och GND från strömkällan, och GND, RESET, SCK, MISO, MOSI från paralellporten.. fungerar som sagt i windows men inte i linux.
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

Så du har inga lysdioder kopplade till dessa pinnar?

Har du provat under Windows på samma dator?
Skriv svar