ايران ويج

نسخه‌ی کامل: کد دریافت 8 بیتی از avr (بیسیک)
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام دوستان
من می خوام اطلاعات Rom قطعه ام را 8 بیتی (با بیسیک) از آن بخونم و بفرستم به کامپیوتر اما هر کاریش می کنم نمی شه. اگه کسی از دوستان قبلا این کارو تو پروژه هاش داشته و می تونه کمکم کنه ممنونم می شم...
در ضمن از AVR AtMega16 استفاده کردم
فقط خیلی حیاتیه ها...
از چه مدل ROM استفاده کردی .
مدلش رو هم ذکر کن .
راستش نمی دونم...
یعنی این سخت افزارو دوستم طراحی کرده و من فقط می دونم ROM 256 است.

ما فقط می خواهیم بایت به بایت از روی حافظه اون بخونه حالا نمی دونم مدل rom (برای این برنامه) فرق داره یانه
خوب مدل رم خیلی فرق می کنه .
رابط اتصال به میکرو شون هم متفاوت از همه . یکی می بینی از رابط I2C استفاده کرده و دیگری خط آدرس و دیتا با یه عالمه پایه داره .
حالا مطمئن هستش ROM هستش . شاید EEPROM باشه . از سری 24C هستش یا نه از اون قدیمی هاست . چند تا پایه داره ؟ اگه از اون قدیمی هاست شاید EPROM باشه که بالاشون یه قسمت داره برای نور ماورای بنفش و پاک کردن اون .
در هر صورت منظور من اینه که اسمش چیه ؟
این عکسشه ببین متوجه می شی (فکر کنم eeprom باشه)
[تصویر:  2mdjb12.jpg]
اين مدل EEPROM از سري 24C هستش كه يه رابط I2C داره ( پايه هاي 5 و 6 ) و توسط بقيه پايه ها آدرس اون مشخص شده است .

اينم دستورات كار تو بسكام

Config Sda = Portx.x
Configures a port pin for use as serial data SDA.

Config Scl = Portx.x
Configures a port pin for use as serial clock SCL.

I2cstart
Sends the start condition.

I2cstop
Sends the stop condition.

I2cwbyte
Writes one byte to an I²Cslave.

I2crbyte
Reads one byte from an I²Cslave.

I2csend
Writes a number of bytes to an I²Cslave.

I2creceive
Reads a number of bytes from an I²Cslave.

--------------------------------------------------------------------------------


اينم يه مثال براي كار با اينجور حافظه ها
کد:
$regfile = "m16def.dat"          
$crystal = 8000000                    
$baud = 19200                        
Dim I2ctemp As Byte                
Config Scl = Portd.1                
Config Sda = Portd.3                
Const Ds1624wr = &B10010000          
Const Ds1624rd = &B10010001          
   I2cstart                        
   I2cwbyte Ds1624wr                  
'byte with r/w 0
   I2cwbyte &HAC
   I2cwbyte &H00                                            
   I2cstop                          
   Waitms 25        
   I2cstart
   I2cwbyte Ds1624wr
   I2cwbyte &HEE                                            
   I2cstop
   Waitms 25
Do
   I2cstart
   I2cwbyte Ds1624wr
   I2cwbyte &HAA    
   I2cstart
   I2cwbyte Ds1624rd  'The chip will give register contents
   I2crbyte I2ctemp                                        
   I2crbyte I2ctemp , Nack                                  
   I2cstop                                                                        
Print "Temperature: " ; Str(i2ctemp) ; " degrees" ; Chr(13);
   Waitms 25
Loop
End