arduino e bascom

Ciao a tutti, ancora arduino non mi è arrivato però chiedo già consigli. Ho trovato un codice che normalmente va caricato su un atmega 88 scritto in bascom (o forse è più corretto dire scritto con bascom..?) in ogni caso di programmazione sono a zero. Volevo chiedervi se questo codice è compatibile con arduino o se in qualche modo può esserlo.

grazie

ecco il codice

'Looping waveshaper

'Init
$regfile = "m88def.dat"
$crystal = 8000000
$baud = 19200

Config Timer0 = Pwm , Prescale = 1 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up       'config timer0
Set Tccr0a.wgm01                                            'double pwm duty frequency so that it's out of audible range


Config Adc = Single , Prescaler = Auto , Reference = Internal
Start Adc
Config Pind.7 = Input                                       'config record button
Config Pind.5 = Input                                       'config punch-in toggle

'Variables
Dim Wavesample As Word
Dim Loopspeed As Word
Dim Waveloop(940) As Byte
Dim Sampleposition As Word
Dim Looplength As Word
Dim Limitreached As Boolean

'give default "quiet" sample on turn-on
Sampleposition = 0
Waveloop(1) = 255
Looplength = 1
Limitreached = 0

Wavesample = Getadc(1)
Wavesample = Wavesample / 4
Waveloop(sampleposition) = Wavesample


'Main loop
Mainloop:
Do
   If Pind.7 = 1 Then Limitreached = 0
   Sampleposition = Sampleposition + 1
   Pwm0a = Waveloop(sampleposition)
   If Pind.7 = 0 And Limitreached = 0 Then
      If Pind.5 = 1 Then Goto Recordloop
      If Pind.5 = 0 Then Goto Punchloop
   End If
   If Sampleposition = Looplength Then Sampleposition = 0
   Loopspeed = Getadc(0) / 6
   Loopspeed = Loopspeed + 2                                'sample speed pot value and do stuff with it
   Waitms Loopspeed
Loop


'Record new loop
Recordloop:
Sampleposition = 1
Do
   Wavesample = Getadc(1)
   Wavesample = Wavesample / 4
   Waveloop(sampleposition) = Wavesample
   Pwm0a = Waveloop(sampleposition)
   If Pind.7 = 1 Then
      Looplength = Sampleposition
      Sampleposition = 0
      Goto Mainloop
   End If
   If Sampleposition = 940 Then
      Limitreached = 1
      Looplength = Sampleposition
      Sampleposition = 0
      Goto Mainloop
   End If
   Sampleposition = Sampleposition + 1
   Loopspeed = Getadc(0) / 6
   Loopspeed = Loopspeed + 2
   Waitms Loopspeed
Loop


'Punch-in loop
Punchloop:
Do
   Wavesample = Getadc(1)
   Wavesample = Wavesample / 4
   Waveloop(sampleposition) = Wavesample
   Pwm0a = Waveloop(sampleposition)
   If Pind.7 = 1 Then
      Goto Mainloop
   End If
   If Sampleposition = Looplength Then
      Sampleposition = 0
   End If
   Sampleposition = Sampleposition + 1
   Loopspeed = Getadc(0) / 6
   Loopspeed = Loopspeed + 2
   Waitms Loopspeed
Loop


End

Eh, direi che andrà un po' modificato :)

Ma, se io realizzo un progetto con arduino, faccio il prototipo, il codice e funziona tutto, poi posso realizzare un circuito più semplice con solo l'atmega e qualche componente e caricare su il programma?

spero di essermi spiegato...

Certo!
Cerca “Arduino stand alone” su google, troverai un sacco di esempi :slight_smile:
http://www.imagearts.ryerson.ca/sdaniels/physcomp/tutorials/Arduino_standalone/ard_hack.html

Uh perfetto, grazie netWorm!

Ciao Urbanspaceman, ho scritto un articoletto al riguardo. In realtà leggermente differente da quello che chiedi: utilizzare Arduino come programmatore di ATMEGA: in questo modo puoi usare un arduino per un progetto, fare un prototipo e infine usarlo per programmare un altro atmega per non deturparlo del suo cuore pulsante. Vedi se ti può essere di aiuto: http://zuccala.blogspot.com/2009/08/mini-tutorial-per-usare-arduino-come.html

perfetto, lo avevo già trovato in rete e lo trovo molto utile. Io ho preso l'arduino nano, credo vada bene lo stesso.

domanda. Se faccio uno sketch (mi pare di capire che i programmi da mettere su arduino si chiamano così), come faccio poi a sapere qual'è l'atmega migliore per me... nel senso, per non usare un chip sovradimensionato in memoria ma magari usarne uno più piccolo, come faccio a capire di quanta memoria ha bisogno il mio programma?

Ciao a tutti allora, oggi mi è arrivato l'arduino nano!!

Mi sono messo con voglia ed ho fatto tutti (o quasi) i progettini del libro 'Arduino la guida ufficiale' di Massimo Banzi (fortuna che c'è anche in italiano).

Ora vorrei cercare di capire come fare per ricreare con l'IDE di arduino, lo sketch che ho postato qualche giorno fa e che trovate qui sopra scritto in bascom.

In sostanza questo codice (per atmega) prende un audio in input e lo tratta con un waveshaping (in sostanza ne fa un tremolo).

Non saprei da dove cominciare in effetti....

Avete idee?

Ho già dato un'occhiata ai link segnalati per l'audio processing in real time (ancora non ho provato).

Grazie

btw

con quel libro io c'entro poco, non hanno voluto che lo traducessi io e l'hanno chiamato "guida ufficiale" senza chiedere autorizzazione a nessuno...siamo in italia....

divertiti con la nano :)

m

Uh... sorry.. comunque ho ordinato quello nuovo ;-)

Ho letto questa guida http://zuccala.blogspot.com/2009/08/mini-tutorial-per-usare-arduino-come.html e vorrei chiedere: è obbligatorio disattivare il reset tagliando i jumper? Mi interessa il discorso di programmare altri atmega. Grazie.

non so.. speriamo che risponda qualcuno ;-)