AVR-Butterfly és a Bascom....

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

AVR-Butterfly és a Bascom....

Hozzászólás Szerző: Robert »

Butterfly és a Bascom...
http://avr.tavir.hu/modules.php?name=Co ... ge&pid=126

A cikkben sokminden felvillantásra kerül....
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Az SPI kezelésnek Bascom fordítási hibája van (1.11.9.8 alatt)

A legegyszerűbb program amin tesztelni lehet, az a SPI memória méretlekérdezése.
Ez a &h57-es opkóddal lehetséges.
A vizsgált illetve hiányzó rész az SPI inicializálás.

A program magja:

Kód: Egész kijelölése

$regfile = "m169def.dat"
$crystal = 1000000
$baud = 4800
'set U2x for 9200 Baud (9600 direkt beállítás nem megy a Bascom korlátai miatt, nem ismeri a 2x-ezést...!)

Ucsr0a = 2

Dim Cim(5) As Byte
Dim A(4) As Byte

'******** SPI Hardware ****************************

Missing/hiányzik -> lsd lentebb

'DS Reset (van gyári külső felhúzó!)
Config Porte.7 = Input
Porte.7 = 1                                                 'Pullup High  (D_Chip reset)

'Define Dataflash CS Pin
Cs Alias Portb.0

'Főprogram / Main

Spiinit
Print "Starting..."
Print
Print "SPI init"
Print
Reset Cs
Waitus 10
Spiinit
Waitus 10
Set Cs
Wait 1
Print "Reading Device...."
   Reset Cs
   Waitus 10
   Cim(1) = &H57
   Spiout Cim(1) , 1
   Spiin A(1) , 1                                           ' read A(1) from SPI 
   Waitus 5
   Set Cs
   Print Cim(1) ; "  " ; A(1)
   Print
   Shift A(1) , Right , 3
   A(1) = A(1) And &H07
   If A(1) = 1 Then
      Print "128K Page_size = 264 Pages = 512"
   Elseif A(1) = 2 Then
      Print "256K Page_size = 264 Pages = 1024"
   Elseif A(1) = 3 Then
      Print "512K Page_size = 264 Pages = 2048"
   Elseif A(1) = 4 Then
      Print "1M Page_size = 264 Pages = 4096"
   Elseif A(1) = 5 Then
      Print "2M Page_size = 528 Pages = 4096"
   Elseif A(1) = 6 Then
      Print "4M Page_size = 528 Pages = 8192"  
   End If
   Wait 100
End
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Tesztek: Bascom 1.11.9.8Reg


SPI Init Szoftveres:

Kód: Egész kijelölése

Config Portb.3 = Input                                      'MISO
Config Portb.2 = Output                                     'MOSI
Config Portb.1 = Output                                     'CLK
Config Portb.0 = Output                                     'CS_DF

Config Spi = Soft , Din = Portb.3 , Dout = Portb.2 , Clock = Portb.1 , Ss = None

Spiinit
A Ki/bemenetek konfigurálása fontos! Az SPIInit nem hajtja végre, nekünk kell megtenni.

Hardveres megoldás:

Kód: Egész kijelölése

Config Spi = Hard , Interrupt = Off , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 4 , Noss = 1
'SPI double speed settings
Spsr = &B00000001

'Ezt a válzozót az inicializálás során nem végzi el a bascom a M169 chip alkalmazásakor! Ezért kézzel szükséges. 


Initspi
A lábak iránybeállítása nem szükséges, az Initspi elvégzi!
Válasz küldése