Thank you ! Now it works without a problem.
If you please, may I ask another question. Why compiler does not use RAM always?
"Specifically, it directs the compiler to load the variable from RAM and not from a storage register"
I used to think chip uses RAM for all variables. So can we say whenever we use something like "int data = analogRead(x)", it saves the data to some register? Why main storage is not RAM? Shouldn't it be faster to use volatile and always be better? Didn't see any disadvantages using always volatile as I read reference guide.