Lite frågor ang. AVR

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Virr3
Inlägg: 840
Blev medlem: 25 juli 2004, 23:05:59
Ort: Göteborg

Inlägg av Virr3 »

provat de..

funkar fortfarande inte..:S
Senast redigerad av Virr3 31 augusti 2004, 21:33:15, redigerad totalt 1 gång.
Användarvisningsbild
Jonaz
Inlägg: 2358
Blev medlem: 4 november 2003, 22:06:33
Ort: Huddinge

Inlägg av Jonaz »

Vad är det för programerare du har? gärna schema/länk
Användarvisningsbild
simon78
Inlägg: 1091
Blev medlem: 8 juni 2004, 11:05:51
Ort: Vinninga/Lidköping
Kontakt:

Inlägg av simon78 »

ponyprog eller avrdude?
Virr3
Inlägg: 840
Blev medlem: 25 juli 2004, 23:05:59
Ort: Göteborg

Inlägg av Virr3 »

det är en ATMega32.. shgemat står lite tidigare i tråden sida 3 om jg inte minns fel..

använder programmersnotepad för att kompilera och mega32isp för att bränna in..
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

Har du konfigurerat mega32isp på något sätt för att få det att fungera med just din programmerare? Tror nämligen inte att mega32isp har stöd för din programmare (Futurlecs eller hur?).

Om jag vore du skulle jag ha kört med avrdude, istället för mega32isp. Version 4.4.0 har iaf stöd för Futurlec tror jag. Dock verkar det inte finnas någon Windows-port av den versionen. Visst var det väl Windows du körde? Men du kan annars installera version 4.3.0 (finns för Windows) och göra ett litet tillägg i en fil för att få den att stödja Futurlec.

Jag är inte säker att det kommer fungera med Futurlecs programmerare. Annars borde det gå att helt enkelt följa vilken kabel som går vart och sedan konfigurera avrdude efter det.

Vad är det för ic-krets som sitter på programmeraren?

Vet du vilket stift som är vilket i kontakten på Futurlecs programmerare?

Kan du visa ett schema på hur du har kopplat?
Virr3
Inlägg: 840
Blev medlem: 25 juli 2004, 23:05:59
Ort: Göteborg

Inlägg av Virr3 »

schemat finns tidigare i tråden..
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

Oj, det hade jag ju faktiskt sett. :oops:

Men mina andra frågor kvarstår...
Virr3
Inlägg: 840
Blev medlem: 25 juli 2004, 23:05:59
Ort: Göteborg

Inlägg av Virr3 »

okej.. hadde lite brådis förut så ja hann inte svara :|

japp den är köpt på futurlec..


men kan de vara olika ATMega 32:or beroende på vart man köper dom? eller snackar du om programeraren :humm:

vad det är för ic som sitter på programeraren har jag inte den blekaste om..
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

Jag har inte pratat om någon ATMega32. Eller vad menar du?

Har du provat att installera avrdude 4.3.0? avrdude kanske rent av följer med WinAVR-paketet.

Står det ingenting på ic:n på programmeraren?
Virr3
Inlägg: 840
Blev medlem: 25 juli 2004, 23:05:59
Ort: Göteborg

Inlägg av Virr3 »

oj.. hadde lite förbrottom nbär jag läste :oops:

sak samma..

på ickretsen står det 25A2XCM och under SN7407N.
Det står i ganska liten text och otydlig färg men det är vad jag kan tyda det till.

nopp inte provat avrdude..
frejo
Inlägg: 496
Blev medlem: 21 april 2004, 21:43:01
Ort: Linköping

Inlägg av frejo »

cykze skrev:Har du konfigurerat mega32isp på något sätt för att få det att fungera med just din programmerare? Tror nämligen inte att mega32isp har stöd för din programmare (Futurlecs eller hur?).

Om jag vore du skulle jag ha kört med avrdude, istället för mega32isp. Version 4.4.0 har iaf stöd för Futurlec tror jag. Dock verkar det inte finnas någon Windows-port av den versionen. Visst var det väl Windows du körde? Men du kan annars installera version 4.3.0 (finns för Windows) och göra ett litet tillägg i en fil för att få den att stödja Futurlec.

Jag är inte säker att det kommer fungera med Futurlecs programmerare. Annars borde det gå att helt enkelt följa vilken kabel som går vart och sedan konfigurera avrdude efter det.

Vad är det för ic-krets som sitter på programmeraren?

Vet du vilket stift som är vilket i kontakten på Futurlecs programmerare?

Kan du visa ett schema på hur du har kopplat?
Programmeraren från futurlec kommer från www.ere.co.th och dom tillhandahåller mega32isp till den.

Jag kör med den programmeraren + mega32isp funkar finfint.
Kopplade enligt schemat på utvecklingskortet för atmegan från www.ere.co.th och var igång på några timmar. Hur smidigt som helst. F.ö samma kopplingschema som jag skickat till Virr3, så det ska fungera...
Virr3
Inlägg: 840
Blev medlem: 25 juli 2004, 23:05:59
Ort: Göteborg

Inlägg av Virr3 »

ska kolla när jag har tid och ork om det funkar till en annan dator.. tror nämligen att det är min paralellport som spökar..
Virr3
Inlägg: 840
Blev medlem: 25 juli 2004, 23:05:59
Ort: Göteborg

Inlägg av Virr3 »

nu funkar allting:D men hur gör jag så att bara en pinne är hög?
Användarvisningsbild
MicaelKarlsson
Inlägg: 4669
Blev medlem: 18 juni 2004, 09:16:07
Ort: Aneby
Kontakt:

Inlägg av MicaelKarlsson »

I C borde det väl bli: PORTA=0x01
i ASM borde du kunna skriva på samma sätt eller PORTA=0b00000001
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

Grattis! Trodde jag väl aldrig att det skulle göra. :P

Hur gjorde du för att få det att fungera? Kan vara kul att veta, speciellt eftersom Futurlec-grejjen är rätt billigt.

Provade du att köra mitt exempel?

Kod: Markera allt

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

// Inkluderar lite header-filer som behövs
// io.h innehåller bl a värdet för PORTB
// delay.h innehåller funktionen _delay_loop_2()
// inttypes.h innehåller olika typer. T ex:
//      uint8_t - unsigned char 8-bit  (0 - 255)
//      int8_t  - signed char 8-bit    (-128 - 127)
//      uint16_t - unsigned int 16-bit (0 - 65535)

int main()
{
   uint16_t i; // Deklarerar en variabel för loopen nedan. 16-bitars eftersom
            // 8 bitar blir för litet för värdet 500 i for-loopen.

   DDRB = _BV(PB0); // Sätter bit nummer PD0 i DDRB till 1 vilket gör så att den blir utgång
   
   
   while (1) // Startar en evighetsloop. Programmet kommer loopa genom den
           // den här loopen så länge AVR:en är igång
   {
      PORTB ^= _BV(PB0); // Växlar värdet på PB0. Dvs ett värde på 1
                  // på PB0 ger 0 på PB0. Och 0 ger 1.
      
      for (i=0;i<500;i++)
      {
         _delay_loop_2(1000); // 1000 motsvarar 1000*4 klockcykler. Vid
                              // 4 MHz motsvarar det 1000 µs. Loopar vi det
                         // 500 gånger så motsvarar det 1/2 sekund.
      }
   } // Går tillbaka till while (1) igen...

   return 1; // Kommer aldrig att köras eftersom programexecveringen aldrig
           // lämnar while-loopen.
}
Har gjort ändringar på raderna med DDRB och PORTB! Det är nu alltså bara porten PB0 som kommer blinka. Alla andra pinnar kommer vara högohm:iga ingångar.

Kanske ska förklara: DDRB = _BV(PB0);
PB0 är en konstant som är det samma som 0. PB1 är 1, PB2 är 2 osv.
_BV är ett makro som är definierat så här: _BV(x)=(1<<x) (fungerar som en vanlig matematisk funktion)

<<-operatorn betyder "skifta vänster". Vilket i "1<<x" betyder: skifta 1, x steg åt vänster.
Skiftar man 1, 0 steg åt vänster kommer DDRB tilldelas 00000001 (bin). Skulle man köra _BV(PB1) istället kommer 1 skiftas 1 steg åt vänster vilket betyder 00000010 (bin).

I vårat fall kommer alltså DDRB innehålla:
00000001 (bin)
Bit nummer 0 kommer vara satt i DDRB. Som du kan se i databladet innebär det att PB0 sätts som utgång.

Är du med så långt? Och förstår du inte är det mina krångliga förklaringar som det beror på. :P
Skriv svar