Hi, this works from example 3, assuming the array is a constant (you didn't 
show the array in your example).

   const byte MARILYN[504] = 
{0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,
                              
0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,
                              
0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,
                              
0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,
                              
0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,
                              
0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,
                              
0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,
                              
0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,
                              
0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,
                              
0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,
                              
0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,
                              
0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,
                              
0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,
                              
0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,
                              
0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,
                              
0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,
                              
0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,
                              
0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,
                              
0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
                              0x42,0x42,0x42,0x42}
                              
   -- fill the sector buffer with data
   for 504 using step1 loop
      sd_sector_buffer[step1] = MARILYN[step1]
   end loop
   -- write the sector buffer to sector 20
   sd_write_sector_address(20)

   -- read back the same sectors
   -- read sector 20 into the sector buffer
   sd_read_sector_address(20)
   -- now send it to the serial port
   for 504 using step1 loop                     -- loop till the end of the 
sector buffer
      serial_write (sd_sector_buffer[step1]) -- send each byte via serial 
port
   end loop

On Monday, February 20, 2023 at 11:05:35 PM UTC-5 Matthew Schinkel wrote:

> Hi, ok so the original sample is working? I'll try what you have but one 
> thing I see is that your loop is 512 but marilyn is only 504. The loop 
> should only be the size of the array.
>
> for *504* using teller loop
>
>       sd_sector_buffer[teller] = marilyn[teller]
>  end loop
>
> Matt.
> On Monday, February 20, 2023 at 6:37:02 PM UTC-5 [email protected] wrote:
>
>> Hi Matt
>> I know that and I tried it before I wanted to write an array to the SD 
>> card. 
>> It works perfect. 
>> The problem is how to write an array to the SD card. 
>>
>> Regards,
>> Peter 
>>
>> Op 21 feb. 2023 om 00:21 heeft Matthew Schinkel <[email protected]> 
>> het volgende geschreven:
>>
>> Hi, have you tried another sd card? What PIC are you using?
>>
>>
>> Please try example 3 in the sample
>>
>> ;   
>> --------------------------------------------------------------------------------
>> ;   -- EXAMPLE #3 write to 2 sectors using a sector buffer at a address
>> ;   -- user friendly and fastest.
>> ;   
>> --------------------------------------------------------------------------------
>> ;   -- fill the sector buffer with data
>> ;   for 512 using step1 loop                     -- loop till the end of 
>> the sector buffer
>> ;      sd_sector_buffer[step1] = "B"             -- set each byte of data
>> ;   end loop
>> ;   -- write the sector buffer to sector 20
>> ;   sd_write_sector_address(20)
>> ;   for 512 using step1 loop                     -- loop till the end of 
>> the sector buffer
>> ;      sd_sector_buffer[step1] = "C"             -- set each byte of data
>> ;   end loop
>> ;   -- write the sector buffer to sector 21
>> ;   sd_write_sector_address(21)
>> ;   --
>> ;   -- read back the same sectors
>> ;   -- read sector 20 into the sector buffer
>> ;   sd_read_sector_address(20)
>> ;   -- now send it to the serial port
>> ;   for 512 using step1 loop                     -- loop till the end of 
>> the sector buffer
>> ;      serial_write (sd_sector_buffer[step1]) -- send each byte via 
>> serial port
>> ;   end loop
>> ;   -- read sector 21 into the sector buffer
>> ;   sd_read_sector_address(21)
>> ;   -- now send it to the serial port
>> ;   for 512 using step1 loop                     -- loop till the end of 
>> the sector buffer
>> ;      serial_write (sd_sector_buffer[step1]) -- send each byte via 
>> serial port
>> ;   end loop
>>
>> Matt.
>>
>> On Monday, February 20, 2023 at 12:12:04 PM UTC-5 [email protected] 
>> wrote:
>>
>>> Hi Matt
>>> I think this is a question for you. You made a beautiful sample for 
>>> writing to a sd card.
>>> Every  start of the program I use the part of your lib to control the 
>>> connection to the sd card.
>>> I can write and read the sd card byte for byte. I use a bitmap image of 
>>> Marilyn Monroe of 504 bytes.
>>>
>>> The half of the next program works perfect:
>>> var byte gegeven
>>> var byte data
>>> var word step1
>>> var word teller
>>>
>>> sd_start_write(50)          
>>>    for count(marilyn) using teller loop
>>>       sd_data_byte = marilyn[teller]
>>>    end loop
>>> sd_stop_write
>>> This works perfect.
>>>
>>>
>>> I also tried to write to the sd card with a 'sector buffer' because most 
>>> arrays are larger.
>>> But first the array of Marilyn. It can be written in one sector.
>>> Attempt 1:
>>> print_string(serial_data, "Writing to sector 100")
>>> print_crlf(serial_data)
>>>
>>> sd_start_write(100)        
>>> --fill the sector buffer
>>>    for 512 using teller loop
>>>       sd_sector_buffer[teller] = marilyn[teller]
>>>    end loop
>>> --    write the sector buffer to sector 100
>>>    sd_write_sector_address(100)
>>> sd_stop _write
>>>
>>> I also tried:
>>> Attempt 2:
>>>
>>>   sd_start_write(150)
>>>         for 512 using step1 loop
>>>            gegeven = marilyn[step1]
>>>            sd_sector_buffer[step1] = gegeven
>>>        end loop
>>> -- write the sector buffer to the sd card
>>>  sd_write_sector()
>>>  sd_stop _write
>>>
>>> Both attempts does not work.
>>> I get rubbish when I read the sectors.
>>> Can you tell me how I get it working.
>>>
>>> Regards,
>>> Peter
>>>
>> -- 
>> You received this message because you are subscribed to a topic in the 
>> Google Groups "jallib" group.
>> To unsubscribe from this topic, visit 
>> https://groups.google.com/d/topic/jallib/I1L0r6P-2xQ/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to 
>> [email protected].
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/jallib/8415623e-2bbb-424c-9498-cd9b3c3b651cn%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/jallib/8415623e-2bbb-424c-9498-cd9b3c3b651cn%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jallib/dd7f03a9-9d77-42ea-8a9c-f08821a1fd3en%40googlegroups.com.

Reply via email to