welke microcontroller? Gratis c compiler en genoeg ram

Beste allemaal,

Ik heb een vier op een rij programma geschreven in c, en wou dit nu in een microcontroller proppen. Nu is er een probleem. De status wordt opgeslagen in een 7x7 array, maar dit krijgt een gewoon picje(16f628 en 16f877) niet in zijn ram(mikroc).

Welke microcontroller moet ik nemen?
- Arduino
- Een avr
- Een pic
- Iets anders

Eisien:
- opslag van een 7x7 array(of natuurlijk een ander idee hoe ik het bord op moet slaan)
- Een gratis c compiler
- Genoeg snelheid om een zet binnen vijf seconden te bereken

Voor de liefhebbers:
De exe

-7*7 is 49 bytes dus waarom dat niet in een 16F628A past?
-Arduino is geen soort µC

Ik vraag mij af wat pientertje wil doen? Hopelijk wil je toch niet die .exe in een microcontroller gaan proppen? :)

Beeldschermdriver gaat iig niet passen ;)

Tweekleuren leds of display?

Ik ga heus niet die exe er in proppen. Maar ik dacht dat iemand hem misschien wilde spelen.
Ram probleem is opgelost, was vergeten int in unsigned char te veranderen. Toen paste het wel.

Maar nu zit ik aan de limiet van mikroc.

Ik weet dat arduino in feite een avr bootloader is, maar er is wel een gratis c compiler.

Uiteindelijk moet het een robot-arm worden, maar ik begin met wat ledjes.

mogelijk wordt het tijd om dan over te stappen op C18 in MPlab?
Daarmee zou het toch eenvoudig moeten lukken.

Of resoluut overstappen van PIC naar AVR. Je (pientertje, niet MAH) zit daar te pronken met Linux in je sig, waar gcc en verwanten een onmisbaar onderdeel van uitmaken. De stap van gcc naar avr-gcc is klein. Zolang je maar geen "malloc(1048576)" of zo gaat uitvoeren. :-)

@TS

dit vind ik een goede gratis compiler.
Devcpp-4.9.9.2 ( zowel voor C++ als C )

Kun je de source van 4 op een rij ook delen met ons?

En genereert devcpp ook hex files, indien niet heeft het niet veel nut om daarmee te gaan werken hé.

Sorry, hex files kun je hier niet mee genereren (ik gebruik dit om standaard-C te oefenen.)

Om hex files te genereren gebruik ik AVR-Gcc in Studio4 van Atmel.
( Dus AVR ipv PIC zoals Pros reeds vermeldde.)

Edit(1):
WINAVR heb je ook nog nodig voor avr-gcc

Edit(2):
(maar ik ben nog een beginneling hiermee.)

Op 2 januari 2010 22:37:21 schreef Erelce:
Om hex files te genereren gebruik ik AVR-Gcc in Studio4 van Atmel.
( Dus AVR ipv PIC zoals Pros reeds vermeldde.)

Inderdaad, of als je op Linux wil werken avr-gcc en avrdude.

welke versie MikroC gebruik je pientertje anders kan ik het hier wel compileren.

Kijk ook eens naar arm, bv LPC2103.

Ook te programmeren met gcc

Het speelveld van 7x7 kan makkelijk in 14 bytes:
- Ieder vakje is 0 = geen, 1 = geel of 2 = rood, dus 2 bits is voldoende
- 7 x 2 bits voor een rij => 14 bits, 2 bytes
- 7 rijen => 14 bytes

Van de twee extra bits zou je er 1 kunnen gebruiken als indicatie of zich een steen op die rij bevindt.

Het moet nog wel kleiner kunnen als je bedenkt dat boven een 0 nooit 1 of 2 voor kan komen ...

Edit: Als we het over favourites hebben, vi + make + avr-ggc + avrdude (en sudo)

Ik ga maar eens wat klooien met een avr.

Stom, stom stom ik dacht dat ik de source gepost had. Hier alsnog:
http://www.uploadarchief.net/files/download/vier.c

@pros doen die avrtjes uberhaubt niet aan dynamic memory allocation, of bedoelde je de grootte?
alle datatypes heb ik al aangepast( int -> unsigned char), ik zal morgen de nieuwe versie posten.

[Bericht gewijzigd door pientertje op (15%)]

Het zal de grootte (1 Mb ;-) ) wel zijn.

Groeten, Bram

Even wat commentaar op je code;

  • flikker a.u.b. al die kleiner/groter of gelijk aan statements weg (kleiner of gelijk aan 6 is gewoon kleiner dan 7).
  • Gebruik unsinged ints voor je return codes.
  • Maak gebruik van de switch statement.
  • Wees consequent in je if/else statements met haken en/of inspringen.
  • Gebruik wat meer commentaar.
  • Bekijk eens hoeveel overhead de rand() functie gebruikt.

Op 2 januari 2010 23:59:47 schreef The Dutchman:
My favorite: AVR-GCC in Eclipse IDE :)

Yo! :)
Daar wil ik mij graag helemaal bij aansluiten.
Werkt echt fantastisch!