Отговори на тема  [ 8 мнения ] 
Някъде греша при четене от EEPROM-a 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Сря Яну 04, 2006 6:23 pm
Мнения: 43
Местоположение: Earth
Мнение Някъде греша при четене от EEPROM-a
Здравейте, записвам в еепром-а няколко стойности които искам да прочета в по късен етап от програмата и да изведа на дисплея. Но някъде явно греша и немога да я открия тази пуста грешка. На дисплея се извеждат само нули :?

чипа е 16F877

Ето част от кода на програмата:

Код:

.
   org   H'2100'            
   de   D'30',D'2',....
   .
   .
   movlw   H'00'      
   call   read_eeprom   
   


   call   Bin8ToBCD   ;преобразувай в BCD формат
   movlw   LCD_Line2
   call   Send_command
   movf   hund_reg,w    
   call   Send_char
   movf   tens_reg,w   
   call   Send_char
   movf   ones_reg,w   
   call   Send_char
   movlw   H'DF'      
   call   Send_char
   movlw   A'C'      
   call   Send_char

read_eeprom
   movwf   EEADR      
   bsf   STATUS,RP0
   bcf   EECON1,EEPGD   
   bsf   EECON1,RD   
   bcf   STATUS,RP0
   movf   EEDATA,w
   subwf   EEDATA,w   ;проверка
   btfsc   STATUS,Z
   bsf   PORTD,7
   return


Bin8ToBCD
   banksel   hund_reg   
   clrf   hund_reg
   clrf   tens_reg
   movwf   ones_reg   
ghundreth   
   movlw   D'100'      
   subwf   ones_reg,w
   btfss   STATUS,C   
   goto   gtenth      
   movwf   ones_reg   
   incf   hund_reg,f   
   goto   ghundreth   
gtenth
   movlw   D'10'      
   subwf   ones_reg,w
   btfss   STATUS,C
   goto   over      
   movwf   ones_reg
   incf   tens_reg,f   
   goto   gtenth
over            
   movf   hund_reg,w   
   xorlw   0x30      
   movwf   hund_reg
   movf   tens_reg,w
   xorlw   0x30      
   movwf   tens_reg
   movf   ones_reg,w
   xorlw   0x30      
   movwf   ones_reg
   retlw   0


след програмиране на чипа, стойностите са се записали правилно в еепром-а.
lcd-то си работи с останалата част от програмата без проблеми.


Сря Май 02, 2007 9:20 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение 
Е тука се казва RTFM. Това SUBWF ти оставя резултат 0 във W. И въобще за какъв грездей ти е тая проверка? Да не мислиш че пик-а ще сбърка ?

ако го напишеш така : subwf EEDATA,w,1 - резултата ще остане във EEDATA, a W ще си остане с търсената стойност.


Сря Май 02, 2007 10:01 am
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Сря Яну 04, 2006 6:23 pm
Мнения: 43
Местоположение: Earth
Мнение 
Проверката я сложих, защото вече се видях в чудо да търся грешката. Но и без тия редове с проверката пак на дисплея си излизат нулички вместо 030 8O


Сря Май 02, 2007 10:26 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 24, 2005 11:41 pm
Мнения: 1049
Местоположение: Pz
Мнение 
Погледни в коя банка ти е EECON1 !!!


Сря Май 02, 2007 10:52 am
Профил ICQ
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Пет Яну 26, 2007 5:05 pm
Мнения: 310
Местоположение: из България
Мнение 
Ахам ти работиш с банки 0 и 1, а ти трябват 2 и 3. Аз лично не се занимавам с RP0 и RP1 а просто си използвам:
Код:
banksel xxx
Гледам че ти ги смесваш двата метода.


Сря Май 02, 2007 10:59 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Сря Яну 04, 2006 6:23 pm
Мнения: 43
Местоположение: Earth
Мнение 
Благодаря ви !
поредното недоглеждане на начинаещия, ще ми е за урок :oops:

Има ли проблем ако смесвам двата метода за избор на банки, ако са използвани правилно ?


Сря Май 02, 2007 11:10 am
Профил ICQ
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Пет Яну 26, 2007 5:05 pm
Мнения: 310
Местоположение: из България
Мнение 
Не, само дето ти се бъркаш така. Или поне аз се бъркам като използвам 2 метода които правят едно и също нещо. Аз си харесвам единия и си карам с него.


Сря Май 02, 2007 11:15 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Сря Яну 04, 2006 6:23 pm
Мнения: 43
Местоположение: Earth
Мнение 
Е да така е, но понеже първите ми стъпки бяха с промяна на PR0, а после научих за по-удобното banksel, та сега докато премина изцяло към него допускам грешки :oops:
Но ще се коригирам :D


Сря Май 02, 2007 11:24 am
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 8 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 2 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни